【发布时间】:2020-03-22 21:00:32
【问题描述】:
当我们想要关闭一个类以继承时,我们使用 final 声明类,
final class Myclass {}
但是当我们将构造函数声明为私有时,效果是一样的,
class Myclass {
private Myclass() {}
}
但真的一样吗?代码的优化或代码的可读性有什么区别吗?以及哪些类必须接近继承,
- 不可变类可能
- 类的每个方法和成员变量都声明为静态
但是对于第二个选项java.util.Arrays 没有用final 声明,即使Arrays 的所有方法都声明为static。
【问题讨论】:
-
你看到这个答案了吗:stackoverflow.com/questions/3952815/…
-
在字节码中,你可以继承一个没有可访问构造函数的类,但你不能创建它的实例除非基类是
Serializable
标签: java inheritance final private-constructor