为什么构造函数不能是最终的、静态的或抽象的?
2022-08-31 11:47:17
为什么构造函数在 Java 中不能是最终的、静态的或抽象的?
例如,你能向我解释为什么这是无效的吗?
public class K {
abstract public K() {
// ...
}
}
为什么构造函数在 Java 中不能是最终的、静态的或抽象的?
例如,你能向我解释为什么这是无效的吗?
public class K {
abstract public K() {
// ...
}
}
当你设置一个方法时,它的意思是:“我不希望任何类覆盖它。但根据Java语言规范:final
JLS 8.8 - “构造函数声明不是成员。它们永远不会被继承,因此不会被隐藏或覆盖。
当你设置一个方法时,它的意思是:“这种方法没有主体,它应该在子类中实现。但是,当使用关键字时,构造函数是隐式调用的,因此它不能缺少正文。abstract
new
当您设置方法时,它的意思是:“此方法属于类,而不是特定对象。但是构造函数是隐式调用来初始化对象的,因此具有静态构造函数是没有目的的。static
问题真的是为什么您希望构造函数是 .static or abstract or final
构造函数不是继承的,因此不能被覆盖,因此具有最终构造函数有什么用
构造函数在创建类的实例时自动调用,它有权访问类的实例字段。静态构造函数的用法是什么。
构造函数不能被覆盖,所以你将如何处理抽象构造函数。