非最终 - 不可变类

jay*_*att 1 java final immutability

我已经阅读并且一直被告知不可变类必须是最终的.但我想知道是否有可能将非最终类对象作为不可变对象.在这个链接中(为什么在Java中声明一个不可变的类final?)如果不可变类方法是最终的并且不能被覆盖,该怎么办?如果该类的所有成员都是final,那么该类的对象也可以是不可变的(除非它们引用了一个可变对象).如果我错了请告诉我,并勾选:)

Era*_*ran 5

如果你可以扩展一个不可变类(这意味着它不是最终的),你可以向子类添加可变属性,这将使你的子类可变,因此基类也是可变的,因为它可以有可变的子类.