java - 子类和父类(super class)中的重复初始化

标签 java initialization

最近,我遇到了这个例子:

抽象汽车类

    public abstract class Car {

    private final Product product;
    private final String carType;

    public Car(Product product,String carType){
        this.product = product;
        this.carType = carType;
    }
}

BigWheel 类扩展了 Car 类

    public class BigWheel extends Car {

    private final Product product;
    private final String carType;

    public BigWheel(Product product, String carType) {
        super (product, carType);
        this.product = product;
        this.carType = carType;
    }
}

我的问题很简单 - 为什么要在两个类中同时初始化 productcarType 变量?为什么在 super 中初始化它们还不够?

最佳答案

您的父类(super class)和子类具有相同的私有(private)变量名称。因此,当您从子类调用 super 时,属于父类(super class)的成员将被初始化,这些成员对子类不可见。因此,子类成员需要再次初始化。 但是,我不明白为什么有人会拥有具有相同最终成员的父类(super class)和子类,以及它们如何适应更大的情况。

关于java - 子类和父类(super class)中的重复初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38199331/

相关文章:

java - SonarQube 无法识别自定义 PomCheck 规则

java - 带有嵌入式 tomcat 的 Spring Boot 应用程序

Java:为什么接口(interface)中的声明不够?

c++:如何初始化已使用 malloc 分配的 std::mutex?

java - 即使没有屏幕旋转,也要让 ViewModel 保持 Activity 状态

java - HTTP 安全配置authorizeRequests() 出现 Sonar 严重缺陷

java - 主要方法和关键监听器

java - 如何使用扫描仪启动最小/最大循环

c++ - C++ 中的函数 const 局部对象会怎样?

c - PowerPC 编译器的结构体数组