Брайан Гетц по ключевому слову 'final' - PullRequest
0 голосов
/ 24 января 2012

В этой статье: http://www.ibm.com/developerworks/java/library/j-jtp1029/index.html

Брайан Гетц заявляет: «Тот факт, что класс X скомпилирован с конечным классом Y, не означает, что одна и та же версия класса Y будет загружена во время выполнения».

Может ли кто-нибудь объяснить это более подробно? Если класс Y является окончательным, он не может быть разделен на подклассы, так в чем смысл этого утверждения?

Ответы [ 3 ]

4 голосов
/ 24 января 2012

Предположим, вы загружаете класс X с помощью загрузчика классов, который имеет отличную реализацию класса Y. В этом случае X будет связан с другим Y.

Обратите внимание, что операторговорит "та же версия класса Y", что означает, что Y можно просто изменить после компиляции X.

1 голос
/ 24 января 2012

То, что заявлено, не то, что класс может быть подклассом. Скорее, у вас нет гарантии версии встроенного класса, с которой вы работаете. Вы можете внести некоторые изменения, перекомпилировать и поменять двоичные файлы. Ваш код будет работать, но это будет другая версия.

1 голос
/ 24 января 2012

Если X скомпилирован с классом Y в банке Z, вы можете запустить класс X с классом V в банке W

это похоже на компиляцию класса в Java 1.5, но запуск его в 1.6

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...