Hallo,
ich mache allerallererste Schritte in Java Swing.
Ich habe Probleme, den ActionListener in mein objektorientiertes Bild bestehend Klassen, Interfaces und Objekten unterzubringen. Beispiel:
ActionListener ist ein Interface, das Unterklasse des Interfaces EventListener ist.
Wie kann ein Interface UnterKLASSE eines anderen Interfaces sein? Kann mir das jemand erklären? Ich verstehe überhaupt nicht, was das soll. Von einem Interface kann ich kein Objekt erzeugen. EventListener hat keinen Konstruktor. Im Konstruktor der "Unterklasse" ActionListener (UnterKLASSE??? Ist doch Interface!) müsste doch dann mit super() der Konstruktor der Oberklasse aufgerufen werden. Aber es gibt ja weder den einen noch den anderen Konstruktor. Warum hat man nicht einfach gesagt, ActionListener implements EventListener? Das ergäbe für mich mehr Sinn.
Ober- und Unterklassen kenne ich durchaus im Zusammenhang mit Spezialisierung, z.B. ist womöglich BAUM Unterklasse von PFLANZE. Aber dieses Schema passt (für mich) hier überhaupt nicht.
Zweite Frage: ich kenne:
typ name = new typ (übergabewerte)
Wie ist dann dieses ActionListener al = new ActionListener() {...} hier einzuordnen???
Und warum funktioniert new ActionListener, wenn man doch von einem Interface keine Objekte erzeugen kann??
Über eure Hilfe wäre ich sehr dankbar.
Julia
ich mache allerallererste Schritte in Java Swing.
Ich habe Probleme, den ActionListener in mein objektorientiertes Bild bestehend Klassen, Interfaces und Objekten unterzubringen. Beispiel:
Java:
ActionListener al = new ActionListener() {
public void actionPerformed( ActionEvent e ) {
button1.setIcon( icon2 );
}
};
ActionListener ist ein Interface, das Unterklasse des Interfaces EventListener ist.
Wie kann ein Interface UnterKLASSE eines anderen Interfaces sein? Kann mir das jemand erklären? Ich verstehe überhaupt nicht, was das soll. Von einem Interface kann ich kein Objekt erzeugen. EventListener hat keinen Konstruktor. Im Konstruktor der "Unterklasse" ActionListener (UnterKLASSE??? Ist doch Interface!) müsste doch dann mit super() der Konstruktor der Oberklasse aufgerufen werden. Aber es gibt ja weder den einen noch den anderen Konstruktor. Warum hat man nicht einfach gesagt, ActionListener implements EventListener? Das ergäbe für mich mehr Sinn.
Ober- und Unterklassen kenne ich durchaus im Zusammenhang mit Spezialisierung, z.B. ist womöglich BAUM Unterklasse von PFLANZE. Aber dieses Schema passt (für mich) hier überhaupt nicht.
Zweite Frage: ich kenne:
typ name = new typ (übergabewerte)
Wie ist dann dieses ActionListener al = new ActionListener() {...} hier einzuordnen???
Und warum funktioniert new ActionListener, wenn man doch von einem Interface keine Objekte erzeugen kann??
Über eure Hilfe wäre ich sehr dankbar.
Julia