Die Verlängerung eines JFrame
Was sind die vor-und Nachteile die Verlängerung eines JFrame eher als erstellen Sie ein neues JFrame?
Beispiel:
public class Test extends JFrame {
setVisible(true);
}
oder
public class Test {
JFrame test = new JFrame():
test.setVisible(true);
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie nicht eine Klasse erweitern, es sei denn, Sie wollen tatsächlich erweitern seine Funktionalität, in dem Beispiel, das Sie gezeigt haben, sollten Sie verwenden Sie option 2, option 1 ist der Missbrauch der
extend
ing feature.In anderen Worten - so lange, wie die Antwort auf die Frage Test ist ein
JFrame
? ist KEINE, sollte er nicht verlängernJFrame
.Profis nicht verlängern JFrame (oder jede Swing-Komponente, für diese Angelegenheit):
int getX()
undint getY()
Methoden. Probieren Sie es aus und Sie werden sehen, dass einige nicht so lustig abnormen Verhaltensweisen.Wenn die Erweiterung der JFrame möchte ich ändern/anpassen meiner aktuellen Jframe-Klasse
und der Unterklasse so verwenden kann, dass diese angepasste Umsetzung.
Wenn es nichts, was ich tun möchten, ändern Sie in der JFrame Klasse, nur verwenden die
bestehende wie im zweiten Ausschnitt, den Sie gegeben haben in Ihrem code. Durch die Nutzung, ich meine
durch die Schaffung weiterer JComponent (button/label für Beispiele), etc, in ein JPanel und
erstellen Sie ein Test-Objekt, und legen Sie die JFrame contentPane zu diesem Objekt. Etwas
wie
Die Regeln der OOD: Wenn Sie nicht Erben (erweitern) die Klassen, die Sie nicht Erben.
Vererbung erhöht die Komplexität und die Verbundenheit des Programms und führen zu neuen Fehlern. In Ihrem Fall gibt es keine Gründe zu erweitern. Klasse.
Sollten Sie erweitert die Klassen nur, wenn Sie brauchen, um Zugang zum geschützten Mitglieder-und/oder Holen Sie sich polymorph Verhalten (überschreiben der virtuellen Methoden).