|
|
|
вопрос по наследованию
|
|||
|---|---|---|---|
|
#18+
Доброго всем дня! Читаю "Философию Явы", уже дошел до поликонструкторов, но вопрос возник совсем откуда не ждал: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. почему в результате: Parent и Child , а не Child и Child ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2013, 16:34:32 |
|
||
|
вопрос по наследованию
|
|||
|---|---|---|---|
|
#18+
Потому что полиморфизм относится только к методам объекта. А привязка к полям и к статическим методам происходит на этапе компиляции. Объявили переменную типа Parent - компилятор и видит Parent.str. Это из-за того, что в основе полиморфизма - виртуальная таблица методов, в которую адреса переменных и статических методов не попадают. Можно получить доступ и к полям наследника, но для этого надо явно кастовать объект. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2013, 17:01:12 |
|
||
|
вопрос по наследованию
|
|||
|---|---|---|---|
|
#18+
NDAleksey, тут ваш пример ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2013, 17:05:56 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38357094&tid=2128852]: |
0ms |
get settings: |
15ms |
get forum list: |
29ms |
check forum access: |
7ms |
check topic access: |
7ms |
track hit: |
53ms |
get topic data: |
20ms |
get forum data: |
6ms |
get page messages: |
77ms |
get tp. blocked users: |
2ms |
| others: | 301ms |
| total: | 517ms |

| 0 / 0 |
