public class Vehicle {
private double speed;
private int wheels;
public Vehicle() {
}
public Vehicle(double speed, int wheels) {
this.speed = speed;
this.wheels = wheels;
}
}
public class Motorcycle extends Vehicle {
private double engineSize;
public Motorcycle(double speed, double engine) {
super(speed, 2);
this.engineSize = engine;
}
}
public class Moped extends Motorcycle {
}
由于Mope扩展了摩托车,为什么它告诉我Moped需要制作一个构造函数?我希望Moped能够在没有任何构造函数的情况下工作。
答案 0 :(得分:4)
由于Motorcycle
没有默认构造函数,因此您无法在Moped
中使用它 - 但您可以为Moped
添加空构造函数 - 比如,
public class Moped extends Motorcycle {
public Moped() {
super(70, 50); //<-- or whatever values you want
}
}
答案 1 :(得分:0)
如果一个类没有no-args构造函数,那么每个子类都必须通过super()调用其中一个显式定义的构造函数。这是Java作为冗长语言的一个例子;它不会假设它可以继承构造函数。