2017-10-22 86 views
0
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 { 


} 

由于闷闷不乐延伸摩托车为什么会告诉我助力车需要做出一个构造函数?我希望脚踏车在没有任何构造函数的情况下工作。尝试从另一个子类继承时出错?

回答

4

因为Motorcycle没有默认构造函数,你不能在Moped使用它 - 但是你可以添加一个空的构造函数Moped - 样,

public class Moped extends Motorcycle { 
    public Moped() { 
     super(70, 50); //<-- or whatever values you want 
    } 
} 
+0

太感谢你了! –

0

如果一个类没有一个无参数的构造函数,然后每个子类必须调用它的一个超级通过了明确定义的构造函数()。 Java是一个冗长的语言,这是一个例子。它不会假定它可以继承构造函数。

相关问题