![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
ressac |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 345 Регистрация: 25.11.2006 Репутация: нет Всего: 1 |
получаю я вот это 0 f() : clase base ! g() : clase base ! 0 f() : clase derivada 1 ! g() : clase derivada 1 ! 0 f() : clase derivada 2 ! g() : clase derivada 2 ! так вот я не пойму почему атрибут всегда показан правильно, тойсть атрибут отца. а методы вызываются подклассов. я ведь не делаю кастинг ((Derivada1)p).f(); или ((Derivada2)p).f(); пожалуйста расталкуйте наглядно, спасибо! |
||||||||
|
|||||||||
rygel |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 110 Регистрация: 21.9.2007 Где: Харьков Репутация: 6 Всего: 7 |
поля объекта в полиморфизме не участвуют
|
|||
|
||||
ressac |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 345 Регистрация: 25.11.2006 Репутация: нет Всего: 1 |
rygel, но если я добавлю только метод "Н" например в один из под классов , то это метод я ни как не смогу вызвать из базового класса.
|
|||
|
||||
rygel |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 110 Регистрация: 21.9.2007 Где: Харьков Репутация: 6 Всего: 7 |
да, не сможешь, если необходимо использовать методы подкласса то и используй работая с объектом подкласса ссылку типа подкласса
|
|||
|
||||
ressac |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 345 Регистрация: 25.11.2006 Репутация: нет Всего: 1 |
rygel, тогда почему в первом случае это прокатывает? я имею в виду методы g и f
|
|||
|
||||
rygel |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 110 Регистрация: 21.9.2007 Где: Харьков Репутация: 6 Всего: 7 |
||||
|
||||
ressac |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 345 Регистрация: 25.11.2006 Репутация: нет Всего: 1 |
rygel, да причём тут динамический биндинг?
![]() ![]() эх, опять 23 %) |
|||
|
||||
Hroft |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 20.10.2003 Где: Москва Репутация: 1 Всего: 3 |
ressac, удивительно, если честно. Тебе все четко пишут, а ты не желаешь читать.
Все методы в java виртуальные. Поля виртуальными не бывают. Ты обращаешься к полю базового класса. С какой стати там должно выводиться что-то еще, кроме значения поля в экземпляре базового класса? И как тут может быть ни при чем "динамический биндинг", если пример как раз на это? Это сообщение отредактировал(а) Hroft - 21.1.2009, 18:47 |
|||
|
||||
ressac |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 345 Регистрация: 25.11.2006 Репутация: нет Всего: 1 |
я просто новичок, а вы сразу накинулись.
|
|||
|
||||
math64 |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 8 Всего: 72 |
Вывод:
|
||||
|
|||||
![]() ![]() ![]() |
Правила форума "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. |