在本文中:http://www.ibm.com/developerworks/java/library/j-jtp1029/index.html
Brian Goetz表示:“仅仅因为类X针对最终类Y进行编译并不意味着在运行时将加载相同版本的Y类。”有人可以更详细地解释一下吗?如果Y类是final,那么它不能被子类化,那么这个语句的含义是什么?
答案 0 :(得分:4)
假设您使用类别加载器加载类X,该类加载器具有类Y的不同实现。在这种情况下,X将与不同的Y链接。
请注意,该语句表示“类Y的版本”,这意味着在编译X后可以简单地更改Y.
答案 1 :(得分:1)
如果X是针对jar Z中的类Y编译的,那么你可以在jar W中使用类V运行类X
类似于在java 1.5中编译类但在1.6中运行它
答案 2 :(得分:1)
所说的不是该类可以是子类。但是,您无法保证正在运行的构建类的版本。您可以进行一些更改,重新编译并交换二进制文件。你的代码会运行,但它会是一个不同的版本。