gpt4 book ai didi

java - 来自抽象 parent 的不可变 child

转载 作者:行者123 更新时间:2023-11-29 05:00:08 25 4
gpt4 key购买 nike

扩展 abstract 类的 final 类可以是不可变的吗?

例如:

public abstract class Parent {}

public final class Child extends Parent {}

Child 是不可变的吗?

最佳答案

它不是一成不变的。

只是无法扩展。

定义了不可变类,因此没有方法可以改变它们的内部状态,例如java.lang.String(也恰好是一个final class)。

期末类(class)不能延期。作为副产品,这就是为什么您不能拥有最终的抽象类最终接口(interface) 的原因。

这通常有助于确保不变性,但它只是相互关联的。

最后,线程安全是另一个特性,它不一定需要不变性,与防止继承的关系更小。

参见 here和子章节以更好地了解不变性。

注意

如果您的类在继承层次结构中是完全空的,而您的叶类是final,那么它实际上是不可变的,因为没有什么可以改变的。

当然,这也是毫无意义的。

关于java - 来自抽象 parent 的不可变 child ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32379530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com