在 Java 中,我不能创建抽象类的实例。那么,为什么 eclipse 不针对以下代码尖叫呢?
public abstract class FooType {
private final int myvar;
public FooType() {
myvar = 1;
}
}
最佳答案
代码没问题,final变量是在FooType
的构造函数中初始化的。
你不能实例化 FooType
因为它是抽象的。但是,如果您创建 FooType
的非抽象子类,则会调用构造函数。
如果您没有在构造函数中显式调用 super(...)
,Java 编译器将自动添加它。因此可以确保调用继承链中每个类的构造函数。
关于java - 抽象类中的最终变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6557800/