Brian Goetz关于'final'关键字

时间:2012-01-24 07:03:04

标签: java final

在本文中:http://www.ibm.com/developerworks/java/library/j-jtp1029/index.html

Brian Goetz表示:“仅仅因为类X针对最终类Y进行编译并不意味着在运行时将加载相同版本的Y类。”

有人可以更详细地解释一下吗?如果Y类是final,那么它不能被子类化,那么这个语句的含义是什么?

3 个答案:

答案 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)

所说的不是该类可以是子类。但是,您无法保证正在运行的构建类的版本。您可以进行一些更改,重新编译并交换二进制文件。你的代码会运行,但它会是一个不同的版本。