java - 抽象类中的最终变量

标签 java constructor abstract final

在 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/

相关文章:

java - 从启动脚本设置类路径不起作用

java - 用于选项卡式菜单的 Android Fragments

c++ - 错误 : no matching function for call

mvvm - Prism 6 和构造函数调用

java - 从抽象类继承

java - 在特定步长间隔内逼近连续函数的导数

java - PKIX 路径构建失败 : Does not work in production server . 它不信任证书

c++ - 没有默认构造函数的对象数组初始化

java - 实体类的正确设计。需要推荐

java - 避免抽象静态方法(或覆盖静态方法)的设计模式