2015-02-14 2 views
-2

Этот вопрос задан в интервью относительно иерархии наследования. Рассмотрим, что у нас есть длинная цепочка иерархии для наследования. enter image description hereуменьшить иерархию наследования java

  1. Это хорошо, чтобы поддерживать длинную цепочку иерархии наследования?
  2. Если это не так. В java, как мы можем уменьшить его?

Выше всего один пример.

+2

Запрашивается * «Хорошо поддерживать длинную цепочку иерархии наследования?» * Немного напоминает запрос * «Хорошо ли использовать слишком много сахара?» * Вопрос уже очень предвзятый, и я сомневаюсь, что есть полезный ответ. – 5gon12eder

+0

Если люди не торопятся ответить на ваш вопрос, не меняйте свой вопрос таким образом, чтобы ответы больше не отражали вопрос. – bhspencer

ответ

2

Ежемесячный платный и ежечасно платный не должны быть классами, но в лучшем случае интерфейсами. Чтобы ответить на ваш вопрос, да, длинная «цепочка» хороша. Но только до тех пор, пока это имеет смысл.

0

В этом случае я бы сказал, что «Monthly Paid» и «Hourly Paid» не должны наследовать от Инженера, поскольку частота, которую кто-то платит, - это не тип Лица. Вместо этого у класса должно быть лицо «PayFrequency». Это называется «Композиция», а не «Наследование».

Одна из причин для этого состоит в том, что у вас может также быть Доктор, который выплачивается ежемесячно. Тогда вам понадобится два класса «Monthly Paid», которые явно не сработают.

Проблема не в длине цепи наследования. Вы должны сделать свою цепочку до тех пор, пока вам нужно, пока она хорошо подходит для данных, которые вы пытаетесь моделировать.

+1

Ну, теперь мой ответ не соответствует заданному вами вопросу. Спасибо, что потратил мое время. – bhspencer

+0

ваш ответ заставил меня задуматься о непонимании моего вопроса. никто не может выжить без ошибок. снова поцелуй. – Burusothman

0

Вопрос был, вероятно, в отношении классических рисунков, таких как Состав и Делегация.

Например, человек может иметь должность. У человека есть имя; но из-за своей работы он не становится другим человеком. Вместо этого функция задания задает делегированный объекту задания.

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