2017-01-22 6 views
0

Ich habe eine Klasse mit nur Getter und Setter namens Plane.Sollte ich Vererbung für eine Bohne verwenden?

public static class Plane { 
    String type = // [Commercial, Fighter] 
    String numberOfWheels 
    String manufacturer 
    String numberOfEngines 

    // getters and setters. 
} 

Aber jetzt eine Anforderung kommt, dass wir eine neue Art von Ebene müssen die amphibious Aktien alle Attribute von commercial/fighter, sondern fügt ein weiteres Feld String pontoons genannt.

Jetzt pontoons wird von nichts anderem als amphibious Ebenen verwendet, dh Wert ist null.

Sollte ich ein Feld zur Ebene Klasse hinzufügen oder für die Vererbung gehen?

+0

Welche Arten von String-Werten erwarten Sie 'Pontons' zu halten, oder sollte es stattdessen ein' boolean' sein? Wenn nur eine (möglicherweise aufzählbare) Eigenschaft vorhanden ist, müssen Sie möglicherweise keine Vererbung verwenden. –

+0

Manchmal ist die Vererbung übertrieben, aber in diesem Fall würde ich mich dafür entscheiden. Sie können "Amphibious" zu einer Schnittstelle machen, wenn Sie andere Fahrzeuge haben, die amphibische Eigenschaften gemeinsam haben können (wie zum Beispiel ein Auto oder Hovercraft). – bphilipnyc

Antwort

2

Klingt wie ein typischer Anwendungsfall für die Vererbung.

public class AmphibiousPlane extends Plane { 

    private String pontoons; 

    // getter, setter for pontoons field 
} 

Sie gab die Gründe: normale Flugzeuge haben nicht Pontons so Pontons zu dem Flugzeug-Modell gehören.

Der Typ könnte ein enum, BTW sein.

Verwandte Themen