Was sind die Vor- und Nachteile von Erweitern eines JFrame und nicht Erstellen eines neuen JFrames ?
?Zum Beispiel:
%Vor%oder
%Vor% Sie sollten keine Klasse erweitern, es sei denn, Sie möchten die Funktionalität tatsächlich erweitern. In dem Beispiel, das Sie gezeigt haben, sollten Sie Option 2 verwenden, da Option 1 ein Missbrauch der Funktion extend
ing ist.
Mit anderen Worten: Solange die Antwort auf die Frage Test ist JFrame
? ist NEIN , sollte sie JFrame
nicht erweitern.
Pros, JFrame (oder irgendeine andere Swing-Komponente) nicht zu erweitern:
int getX()
und int getY()
angegeben habe. Probieren Sie es aus und Sie werden einige nicht so abnormale Verhaltensweisen sehen. Wenn ich JFrame erweitern möchte, möchte ich meine aktuelle Jframe-Klasse ändern / anpassen und so kann die Unterklasse diese angepasste Implementierung verwenden.
Wenn sich in der JFrame-Klasse nichts ändern soll, verwenden Sie einfach wie im zweiten Snippet, das Sie in Ihrem Code angegeben haben. Mit Benutzung meine ich durch Erstellen einer anderen JComponent (Schaltfläche / Label für Beispiele) usw. in einem JPanel und ein Objekt erstellen Testen Sie und legen Sie das JFrame contentPane für dieses Objekt fest. etwas wie
%Vor%Eine der Regeln von OOD: Wenn Sie die Klassen nicht erben (erweitern) können, übernehmen Sie deren nicht.
Vererbung erhöht die Komplexität und Verbundenheit des Programms und führt möglicherweise zu neuen Fehlern. In Ihrem Fall gibt es keine Gründe, den Unterricht zu verlängern.
Sie sollten Klassen nur dann erweitern, wenn Sie Zugriff auf geschützte Elemente benötigen und / oder polymorphes Verhalten erhalten (virtuelle Methoden überschreiben).
Tags und Links java inheritance swing jframe composition