ima*_*ake 13 java constructor final abstract
在Java中,我无法创建抽象类的实例.那么为什么不对下面的代码发出尖叫呢?
public abstract class FooType {
private final int myvar;
public FooType() {
myvar = 1;
}
}
Run Code Online (Sandbox Code Playgroud)
Hen*_*ann 17
代码很好,最终变量在构造函数中初始化FooType
.
你无法实例化,FooType
因为它是抽象的.但是如果你创建一个非抽象的子类FooType
,那么将调用构造函数.
如果您没有super(...)
在构造函数中进行显式调用,Java编译器将自动添加它.因此,确保调用继承链中每个类的构造函数.