Adapterklassen vs Interfaces

Ritzlach

Neues Mitglied
Halli Hallo,


bräuchte kurz hilfe bei der Erklärung beider Begriffe! Kann mir leider keine einfachen Umganssprachlichen Sätze zu den beiden Begriffen reimen!


Zusätzlich möchte ich noch fragen inwelchem zusammenhang Adapterklassen und Interfaces mit extends und implements stehen!


Habe momentan die Beispiele:


1. hier wird -----
Java:
  class ergebnis implements ActionListener
---- scheinbar ein ActionListener implementiert?

2. hier wird-----
Java:
  class ausgehen extends WindowAdapter
-----ein window adapter hinzugefügt!?


Würde gerne den zusammenhang bzw. die bedeutung der 4 Begriffe verstehen!
 
G

Gast2

Gast
Um benachrichtigt zu werden wenn ein xyEvent eintritt kannst du einer bestimmten Komponente einen xyListener hinzufügen.
z.b. kannst du einem JTextfield einen KeyListener hinzufügen. Du wirst dann benachrichtigt wenn ein KeyEvent eintritt.

Dieser KeyListener ist ein interface. Falls du jetzt einen KeyLister erstellen willst, musst du also alle Methoden des interfaces implementieren. Am beispiel des Keylisteners wäre das z.b.:

Java:
public class MeinListener implements KeyListener {

    public void keyTyped(KeyEvent e) {
        /* do something */
    }

    public void keyPressed(KeyEvent e) {
        /* do something */
    }

    public void keyReleased(KeyEvent e) {
        /* do something */
    }

}

Diesen Listener kannst du jetzt jedem JTextfield hinzufügen und es werden je nach Event die einzelnen Events ausgeführt.

Jetzt kanns aber sein dass ein Listener viel mehr Methoden hat (z.b. der WindowListener) und du dich aber nur für ein einziges Event interessierts (z.b. windowClosed()).
Dann hättest du sehr viele leere Methoden was ziemlich unschön ist. Genau dafür gibt es die AdapterKlassen. Diese implementieren alle Methoden des Interfaces mit einer leeren Methode. Du kannst deine Klasse dann einfach von dem Adapter ableiten und diejenigen Methoden überschreiben die dich wirklich interessieren.

Java:
public class MeinListener extends WindowAdapter {
    @Override
    public void windowClosed(WindowEvent e) {
        /* jetzt kann ich noch ein wenig aufräumen hier */
    }
}
Hat den Vorteil dass du deinen Code kompakt hälst.

Im Gegensatz hierzu die Methode über den WindowListener:

Java:
public class MeinListener implements WindowListener {
    public void windowOpened(WindowEvent e) {

    }

    public void windowClosing(WindowEvent e) {

    }

    public void windowClosed(WindowEvent e) {
       /* jetzt kann ich noch ein wenig aufräumen hier */
    }

    public void windowIconified(WindowEvent e) {
        
    }

    public void windowDeiconified(WindowEvent e) {

    }

    public void windowActivated(WindowEvent e) {

    }

    public void windowDeactivated(WindowEvent e) {

    }
}
Die beiden Klassen machen exakt das selbe, nur dass die obere Variant sehr viel kürzer ist.

extends/implements sind dir klar oder?
 

Luk10

Top Contributor
Kurz und knapp:

Code:
implements
: nur im Zusammenhang mit Interfaces zu verwenden ...

Man "implementiert" ein Interface = Schnittstelle, und damit alle abstrakten Methoden, die man auch überschreiben muss!
z.B
Code:
actionPerformed()
bei dem ActionListener Interface!

Code:
extends
: Man verwendet es bei Polymorphie, d.h. Vererbung ... Eine Unterklasse kann mit extends von einer Superklasse erben, d.h. alle public/protected Methoden/Variablen sowie kann man den
Code:
super
-Operator verwenden um Methoden der Superklasse aufzurufen ...

Hoffe das erklärt das ein bisschen ... Luk
 
G

Gas

Gast
Kurz und knapp:

Code:
implements
: nur im Zusammenhang mit Interfaces zu verwenden ...

Man "implementiert" ein Interface = Schnittstelle, und damit alle abstrakten Methoden, die man auch überschreiben muss!
z.B
Code:
actionPerformed()
bei dem ActionListener Interface!

Code:
extends
: Man verwendet es bei Polymorphie, d.h. Vererbung ... Eine Unterklasse kann mit extends von einer Superklasse erben, d.h. alle public/protected Methoden/Variablen sowie kann man den
Code:
super
-Operator verwenden um Methoden der Superklasse aufzurufen ...

Hoffe das erklärt das ein bisschen ... Luk
Und wenn man ein Interface nutzt ist dann etwa keine Polymorphie möglich?
 

Michael...

Top Contributor
Ein Interface ist eine Vorschrift, die festlegt welche Methoden eine Klasse anbieten muss. Was innerhalb dieser Methoden passiert muss die implementiertende Klasse selbst festlegen, da in Interfaces nur die Methodensignaturen ohne Rumpf definiert werden.
Da es in Java nur die Einfachvererbung gibt, sind Interfaces ein wichtiges Konstrukt der Polymorpie.

Ein Adpater ist ein echte (meist abstrakte) Klasse, die ein oder mehrere Interfaces implementiert. Von echten Klassen kann man per extends erben, d.h. die erbende Klasse kann ohne eigene Implementierung die Methoden des Adapter nutzen.

Manchmal muss man ein Interface implementieren und benötigt nur ein oder zwei Methoden, z.B. nur die windowClosing() von WindowListener, um nicht die restlichen sechs Methoden implementieren zu müssen, kann man dann - nach Möglichkeit - von WindowAdapter erben (welcher u.a. dieses Interface implementiert) und überschreibt dann nur die Methoden, die für die Funktion der Klasse relevant sind.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Adapterklassen Java Basics - Anfänger-Themen 10
D Interfaces von Interfaces macht das noch Sinn? Java Basics - Anfänger-Themen 21
J Methodenaufrufe abstrakte Klassen, Interfaces Java Basics - Anfänger-Themen 17
M Wozu dient Interfaces? Java Basics - Anfänger-Themen 6
O Mehrfachvererbung auf Spezifikations- und Implementierungsebene in Java. Interfaces Java Basics - Anfänger-Themen 19
U Funktionale Interfaces mit mehreren abstrakten Methoden? Java Basics - Anfänger-Themen 8
M Interfaces Aufgabe Java Basics - Anfänger-Themen 2
I JSON / XML Struktur mit Vererbung / Interfaces Java Basics - Anfänger-Themen 0
I XML und Interfaces aus anderen Projekten Java Basics - Anfänger-Themen 3
8u3631984 Record - Interfaces Java Basics - Anfänger-Themen 4
M Wie kann ich in einem Konstruktor die Methode eines anderen Interfaces mit den jeweiligen Parametern aufrufen? Java Basics - Anfänger-Themen 8
H Sinn von Interfaces Java Basics - Anfänger-Themen 21
B JaxB und Interfaces? Java Basics - Anfänger-Themen 2
M Funktionale Interfaces Java Basics - Anfänger-Themen 3
Kirby.exe Frage zur Verwendung von Interfaces Java Basics - Anfänger-Themen 6
H Frage zu interfaces Java Basics - Anfänger-Themen 1
J Zweck von Interfaces immer noch nicht klar Java Basics - Anfänger-Themen 3
M Klasse erbt von Interfaces Java Basics - Anfänger-Themen 6
T Interfaces in erbenden Klassen Java Basics - Anfänger-Themen 2
T Abstrakte Klasse und Interfaces Java Basics - Anfänger-Themen 12
H Polymorphie Interfaces und statischer Typ Java Basics - Anfänger-Themen 33
T Verständnisfrage zu Interfaces Java Basics - Anfänger-Themen 7
F Exceptions in Interfaces Java Basics - Anfänger-Themen 4
F Interface Warum Interfaces? Java Basics - Anfänger-Themen 5
R interfaces Java Basics - Anfänger-Themen 1
B Interfaces Java Basics - Anfänger-Themen 6
A Vererbung/Interfaces/Generics Java Basics - Anfänger-Themen 12
D Interface Wieso Aufruf aller Methoden eines Interfaces? Java Basics - Anfänger-Themen 11
J Interfaces? Java Basics - Anfänger-Themen 32
M Erstellung Interfaces....totale Anfängerfrage Java Basics - Anfänger-Themen 16
S Erste Schritte Innere Klassen und Interfaces Java Basics - Anfänger-Themen 2
J Wofür dienen Interfaces ? Java Basics - Anfänger-Themen 1
Hijo2006 Frage zu Interfaces Java Basics - Anfänger-Themen 21
Hacer Interfaces implementieren Java Basics - Anfänger-Themen 7
H Implementierung eines Interfaces erweitern Java Basics - Anfänger-Themen 13
L Via Interfaces unterschiedliche Klassen ansprechen Java Basics - Anfänger-Themen 8
A Verwendung von Interfaces Java Basics - Anfänger-Themen 7
J Interfaces Java Basics - Anfänger-Themen 15
D Frage bzgl. Interfaces Java Basics - Anfänger-Themen 10
D Interface Verständnisprobleme von Interfaces Java Basics - Anfänger-Themen 5
D Interface Interfaces und abstrakte Klassen implementieren Java Basics - Anfänger-Themen 4
S Rollen verändern, Interfaces austauschen wie? Java Basics - Anfänger-Themen 10
K Interfaces/Klassen etc. Java Basics - Anfänger-Themen 6
F Implementierung von Interfaces -> Problem mit main Java Basics - Anfänger-Themen 12
S Verständnisproblem bei Interfaces Java Basics - Anfänger-Themen 6
I Interface Verständnisfrage Interfaces (Bsp.: Enumeration) Java Basics - Anfänger-Themen 2
M Frage zu Generics in Klassen, Abstrakten Klassen und Interfaces Java Basics - Anfänger-Themen 5
O Java Interfaces für andere Programmiersprachen zur Verfuegung stellen? Java Basics - Anfänger-Themen 2
K Interface Generics, Interfaces und Listen - ich bin verwirrt. Java Basics - Anfänger-Themen 7
G Instanzen eines Interfaces erzeugen Java Basics - Anfänger-Themen 7
M Compiler-Fehler Alle Methoden eines Interfaces Implementiert dennoch Fehler Java Basics - Anfänger-Themen 3
V Interface Interfaces und abstrakte Klassen Java Basics - Anfänger-Themen 3
F Best Practice UML/Planung eines Projektes (Klassen, Interfaces, ...) Java Basics - Anfänger-Themen 0
V Vererbung Vererbung, Interfaces und OOP... Java Basics - Anfänger-Themen 10
C Sinn eines Interfaces? Java Basics - Anfänger-Themen 4
A Interface Poymorphismus bei Interfaces Java Basics - Anfänger-Themen 2
Pentalon Eclipse JUNO keine Vorschläge von Methoden bzw. Interfaces der eigenen Klassen Java Basics - Anfänger-Themen 5
R Mehrere Interfaces(Comparable, ...) Java Basics - Anfänger-Themen 2
J Interfaces Abstrakte Klassen Java Basics - Anfänger-Themen 15
D Interfaces und allgemeingültige Methodenaufrufe Java Basics - Anfänger-Themen 6
H Erste Schritte 2 User Interfaces für eine Anwendung Java Basics - Anfänger-Themen 7
S OOP Wann Proxies und Interfaces? Java Basics - Anfänger-Themen 3
M Interface @Inject mit Interfaces? Java Basics - Anfänger-Themen 2
F Interface Unterschied von Attributen und Methoden bei abstrakten Klassen und Interfaces Java Basics - Anfänger-Themen 5
V mehrfachvererbung unter interfaces Java Basics - Anfänger-Themen 10
J Interface Wie funktioniert das mit den Interfaces. Ich verstehe es einfach nicht! :( Java Basics - Anfänger-Themen 15
T Interfaces und Implementierungen Java Basics - Anfänger-Themen 12
S Interface mehrere Interfaces Java Basics - Anfänger-Themen 2
M Vererbung Problem bei Interfaces Java Basics - Anfänger-Themen 8
H Dynamische Bindung mit Interfaces und LinkedList Java Basics - Anfänger-Themen 7
F Interfaces Java Basics - Anfänger-Themen 4
M Frage zu Interfaces Java Basics - Anfänger-Themen 3
N Generics und Interfaces Java Basics - Anfänger-Themen 5
D Abstrakte Klassen und Interfaces als Paramter in Funktionen Java Basics - Anfänger-Themen 3
P OOP Aufruf eines Interfaces Java Basics - Anfänger-Themen 4
N OOP Vererbung von Interfaces Java Basics - Anfänger-Themen 12
S Verständnisfrage zu Interfaces Java Basics - Anfänger-Themen 2
D Sinn von Interfaces - Wozu? Java Basics - Anfänger-Themen 9
P Frage zu Interfaces Bsp. Java Basics - Anfänger-Themen 9
A Deklarationen in abstrakten Klassen und Interfaces Java Basics - Anfänger-Themen 11
P Interfaces -> eins oder mehrere für eine Anwendung? Java Basics - Anfänger-Themen 9
2 Interfaces, Polymorphie und Methoden. Java Basics - Anfänger-Themen 14
A Obstlager Interfaces Java Basics - Anfänger-Themen 7
K Theor. Frage zu Interfaces Java Basics - Anfänger-Themen 30
T Frage zu Interfaces und Abstrakten Klassen Java Basics - Anfänger-Themen 4
J Interfaces Java Basics - Anfänger-Themen 14
L Interfaces Java Basics - Anfänger-Themen 5
J spiel "Gefangenendilemma" Probleme mit Interfaces Java Basics - Anfänger-Themen 8
H Interfaces in java? Java Basics - Anfänger-Themen 2
A OOP Interfaces mit gleichem Methoden Java Basics - Anfänger-Themen 15
T Interfaces: Braucht man abstrakte Klassen eigentlich noch? Java Basics - Anfänger-Themen 3
S Implementierung gegen Interfaces / List, ArrayList, LinkedList Java Basics - Anfänger-Themen 11
D Interfaces / Schnittstellen Java Basics - Anfänger-Themen 8
I Probleme mit Interfaces Java Basics - Anfänger-Themen 4
K Interfaces "Schreibaufwand" Java Basics - Anfänger-Themen 53
I Interfaces Java Basics - Anfänger-Themen 34
bigbasti Warum genau braucht man Interfaces? Java Basics - Anfänger-Themen 10
A Programmieren gegen Interfaces Java Basics - Anfänger-Themen 4
I Frage zu Collection und List Interfaces Java Basics - Anfänger-Themen 2
7 Interfaces - Aufbau Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben