本文简介:http://www.ibm.com/developerworks/java/library/j-jtp1029/index.html
Brian Goetz说:“仅仅因为类X是针对最终的类Y编译的,并不意味着在运行时会加载相同版本的类Y。”
有人能更详细地解释一下吗?如果类Y是最终的,那么它不能被子类化,那么这句话的意思是什么?
发布于 2012-01-24 15:06:35
假设你用一个类加载器加载一个类X,这个类加载器有一个不同的类Y的实现。在这种情况下,X将链接到不同的Y。
注意,这条语句说的是“类Y的相同版本”,这意味着在编译X之后,可以简单地更改Y。
发布于 2012-01-24 15:05:47
如果X是针对jar Z中的类Y编译的,则可以在jar W中使用类V运行类X
它类似于在java1.5中编译一个类,但在1.6中运行它
发布于 2012-01-24 15:08:18
声明的内容并不是说类可以子类化。而是您不能保证运行所针对的已构建类的版本。您可以进行一些更改,重新编译并交换出二进制文件。您的代码将运行,但它将是一个不同的版本。
https://stackoverflow.com/questions/8983132
复制相似问题