具有扩展参数的Java子类构造函数

具有扩展参数的Java子类构造函数,java,Java,我想知道是否有可能为超类的每个子类扩展构造函数参数。 例如: public class Car{ protected String regNum; protected Car(String regNum){ this.regNum = regNum; } } public class GasCar extends Car{ protected double gasEmissions; protected GasCar(double gE){ gasEmissions = gE

我想知道是否有可能为超类的每个子类扩展构造函数参数。 例如:

public class Car{
protected String regNum;
protected Car(String regNum){
    this.regNum = regNum;
  }
}
public class GasCar extends Car{
protected double gasEmissions;
protected GasCar(double gE){
    gasEmissions = gE;
  }
}

有没有一种方法可以通过继承使用GasCar构造函数中的Car构造函数中的参数

简言之:不是直接的,而是某种程度的。您可能正在寻找的是对超级构造函数的调用,例如:

public class Car {

    protected String regNum;

    protected Car(String regNum) {
        this.regNum = regNum;
    }
}

public class GasCar extends Car {

    protected double gasEmissions;

    protected GasCar(String regNum, double gE) {
        super(regNum);
        gasEmissions = gE;
    }
}
请记住,调用超级构造函数(或任何其他构造函数)是在构造函数中需要做的第一件事


编辑:正如其他两个答案所说,您仍然需要调用超级构造函数(如果您不直接调用它,它将尝试调用不带参数的构造函数)。

您是否尝试编译此代码?它不会编译,因为GasCar构造函数没有调用超级构造函数


而且,您使用继承这个词的方式是错误的。参数不是继承的-方法是继承的。构造函数永远不会被继承,因为它没有意义——当你对一个对象进行子类化时,它需要自己的构造函数。

你能详细说明一下吗?我真的很想知道继承是否有我不了解的东西:)