2017-10-22 2 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 { 


} 

Seit Mope Motorrad erweitert Warum sagt es mir Moped muss einen Konstruktor machen? Ich möchte, dass Moped ohne Konstruktor funktioniert.Fehler beim Versuch, von einer anderen Unterklasse zu erben?

Antwort

4

Da Motorcycle keine Standardkonstruktors haben, können Sie es nicht in Moped verwenden - aber man konnte einen leeren Konstruktor für Moped hinzufügen - wie,

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

Vielen Dank !! –

0

Wenn eine Klasse nicht ein No-Args-Konstruktor, dann muss jede Unterklasse einen ihrer explizit definierten Konstruktoren über super() aufrufen. Dies ist ein Beispiel dafür, dass Java eine ausführliche Sprache ist. es wird nicht davon ausgegangen, dass es einen Konstruktor erben kann.

Verwandte Themen