|
|
|
выделение памяти в JVM
|
|||
|---|---|---|---|
|
#18+
День добрый, уважаемые жители форума. Начинаю знакомиться с java и возник следующий вопрос : есть пара классов : Код: 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. 31. 32. Вопрос в следующем : почему в методе printVariable() не происходит присвоения значения полю B.variable ? Если в классе B убрать инициализацию variable, то все отработает согласно полиморфизму, т.е. вызовется В.printVariable() и значение B.variable станет равным "variable is initialized in B Class". заранее спасибо всем ответившим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2017, 21:23 |
|
||
|
выделение памяти в JVM
|
|||
|---|---|---|---|
|
#18+
new B() -> (...здесь Object...) -> Инициализация полей Main -> Вызов конструктора Main() -> вызов B.printVariable() (полиморфно) - сейчас в B.variable то, что и должно быть -> инициализация полей в B (здесь перезапись на null) -> вызов конструктора B() -> ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2017, 21:42 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=75&tid=2123189]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
45ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
39ms |
get tp. blocked users: |
2ms |
| others: | 226ms |
| total: | 356ms |

| 0 / 0 |
