最近,我遇到了这个例子:
抽象汽车类
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;
}
}
我的问题很简单 - 为什么要在两个类中同时初始化 product
和 carType
变量?为什么在 super
中初始化它们还不够?
最佳答案
您的父类(super class)和子类具有相同的私有(private)变量名称。因此,当您从子类调用 super 时,属于父类(super class)的成员将被初始化,这些成员对子类不可见。因此,子类成员需要再次初始化。 但是,我不明白为什么有人会拥有具有相同最终成员的父类(super class)和子类,以及它们如何适应更大的情况。
关于java - 子类和父类(super class)中的重复初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38199331/