在Java中,我无法创建抽象类的实例。那么为什么不让下面的代码黯然失色呢?
public abstract class FooType {
private final int myvar;
public FooType() {
myvar = 1;
}
}
最佳答案
代码很好,最终变量在FooType
的构造函数中初始化。
您无法实例化FooType
,因为它是抽象的。但是,如果您创建FooType
的非抽象子类,则将调用构造函数。
如果在构造函数中没有对super(...)
的显式调用,则Java编译器将自动添加它。因此,可以确保调用继承链中每个类的构造函数。