如何在没有final关键字的情况下实现此目的?我必须改变什么构造函数?
public final class testName {
testName() {
//do something
}
}
Run Code Online (Sandbox Code Playgroud)
emb*_*oss 13
如果您制作了所有的构造函数private,那么该类也将不再可扩展.
public class TestName {
private TestName(){do something}
}
Run Code Online (Sandbox Code Playgroud)
要了解原因,请查看第3.4.4.1节"默认构造函数".通过声明您的私有默认构造函数,该段落的最后一句包含:
永远不能从类外部调用这样的[private]构造函数,但它会阻止自动插入默认构造函数.
因此,通过在超类中声明一个不可访问的构造函数来实现,没有(其他)构造函数可以调用子类,因此Java会阻止编译.
| 归档时间: |
|
| 查看次数: |
4996 次 |
| 最近记录: |