![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
zomber |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 7.5.2011 Репутация: нет Всего: нет |
нужен внутренний класс
но его функционал надо переопределить в наследнике основного класса решение:
нормально или можно как-то лучше ? |
|||
|
||||
Stolzen |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1041 Регистрация: 17.10.2005 Репутация: 23 Всего: 48 |
Собственно, написанное равнозначно этому:
А что и куда вам нужно переопределить? |
|||
|
||||
Pawl |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 649 Регистрация: 22.4.2008 Где: Витебск Репутация: 7 Всего: 28 |
не равнозначно. См. внимательно: 2 одинак. названия в одном классе (ExtendedAction) - не скомпилируется! -------------------- В действительности всё совсем не так, как на самом деле |
|||
|
||||
Stolzen |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1041 Регистрация: 17.10.2005 Репутация: 23 Всего: 48 |
Ну по сути это одно и то же, просто за счет области видимости классам можно дать одинаковые имена - но ведь это не является переопределением. Но, я так понимаю, нужно вовсе не это, а чтобы в классах D при выполнении a.doIt() выводилось "2"?
Это сообщение отредактировал(а) Stolzen - 2.1.2012, 04:58 |
|||
|
||||
sergioK1 |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 417 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
нет не нормально, за такое руки пообламать надо ![]() |
||||
|
|||||
Pawl |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 649 Регистрация: 22.4.2008 Где: Витебск Репутация: 7 Всего: 28 |
хоть я и не автор этой темы, но мне до жути интересно, а как же нормально? Просветите, о мудрейший! ![]() -------------------- В действительности всё совсем не так, как на самом деле |
|||
|
||||
Stolzen |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1041 Регистрация: 17.10.2005 Репутация: 23 Всего: 48 |
Если цель - переопределить поведение a.doIt() в подклассе, то лучше всего сделать что-то типа следующего:
Но при таком подходе классы C и D в принципе не нужны. И этот паттерн называется Стратегия. |
|||
|
||||
jk1 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1168 Регистрация: 17.10.2008 Где: Санкт-Петербург Репутация: 40 Всего: 75 |
Stolzen,
Честно говоря, Ваш пример гораздо больше похож на паттерн Command (Action), чем на Strategy -------------------- Opinions are like assholes — everybody has one |
|||
|
||||
Stolzen |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1041 Регистрация: 17.10.2005 Репутация: 23 Всего: 48 |
jk1, из-за названия интерфейса, может быть, я его просто позаимствовал из оригинального кода. Так-то по цели (так, как я ее понял) это стратегия - изменение поведения класса в зависимости от обстоятельств.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |