2015-09-23 3 views
-1

Я должен разработать следующий сценарий.Проектирование наследования в Java

2 Классы - Квадратные - методы - ничья() и calculateLength (интермедиат а) Треугольник имеет методы нарисовать() и и calculateLength (Int А, Int б)

позже в развитии добавляющие новый класс Круг - имеет методы draw() и calculateLength (int a, int b, int c) ... поэтому, когда дело доходит до класса Circle, приложение должно принудительно применять класс для реализации draw и calculateLength ..

Я думал о создании Интерфейс типа называется Форма и который имеет рисовать() метод, но когда дело доходит до треугольника calculateLength также должно быть принуждено реализовать ..

Предложите мне лучший способ создания этого сценария ...

+1

Если ваш единственный распространенный метод - 'draw', это единственный, который может идти по общему интерфейсу. –

+0

Зачем нужен метод расчета длины? Не должен ли каждый экземпляр отслеживать соответствующие длины сторон? –

+0

Ben ... это требование требуется дизайн .. –

ответ

0

Выгоды интерфейса заключается в том, что он обеспечивает гарантию для других классов, которые будут доступны для метода X, указанного в интерфейсе. Основываясь на информации, которую вы предоставили, это не кажется здесь важным. Вы не можете дать методы в интерфейсе тела метода, если они не являются статическими (что не кажется вам полезным для вашего примера).

Для этого сценария вы хотите, чтобы объекты находились в одном классе/подклассах друг друга, если они используют части одного и того же кода. Являются ли методы calculateLength в Square и Circle одинаковыми? Я могу представить себе сценарий, в котором они будут. В этой ситуации полезно было бы наследовать от одного и того же суперкласса и не переписывать методы/элементы данных.

Смежные вопросы