[英]A final class and underlying consequences in Java
我在某处听到了这条线,我无法摆脱它:
“最终班的所有成员都是隐式最终的。”
现在,我非常了解这三个著名的概念:
final
课程无法扩展。 final
变量。 final
方法不能被覆盖。 但是,如果最终类的所有成员(变量,方法)都是隐式最终的,则我们将在其中拥有一个最终类,最终变量和最终方法。
那么, StringBuilder
尽管最终是如何允许其内容更改的呢?
该断言过于简单,因此是错误的。 一个只有方法的 final
类可以被视为隐含final
。 但是,此事实与其含义无关,因为由于没有任何子类,因此无法覆盖final
类的方法。 它们是隐式还是显式的final
与否并不重要。
一堂课可以是最后的,但是可变的。
类为final只是意味着不能有子类,但是对于类的行为则什么也没有说。
相反,字段和方法可以是final(实例是不可变的 ),但类不是final。
班级与班级成员的最终决定无关。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.