Interfaces

Status
Nicht offen für weitere Antworten.
B

Berna

Gast
hi, ich bin gerade dabei mir Interfaces anzusehen.

Im Prinzip weiss ich ja das Interfaces einfach eine vollständig abstrakte Klasse ist.

Nur verstehe ich generell den Zweck von Interfaces nicht.

Ich lese immer wieder: so auf die Art - Interfaces dienen dazu, Klassen gleich zu behandeln in in keiner Vererbungsbeziehung zueinander stehen.

Kann mir jemand bitte ein anschauliches Bsp aufzeigen, damit ich den Sinn dahinter verstehe


grüsse

bernd
 

Illuvatar

Top Contributor
Da hab ich mir heute erst für nen Vortrag in der Schule was dazu überlegt. Also, stell dir mal vor, wir haben eine Klasse Liste, die eine Anzahl beliebiger Objekte speichert. Die Liste soll die gespeicherten Objekte ausgeben und sortieren können.
KeineInterfaces.png

Wie soll das sortieren denn jetzt funktionieren? Eine einfache Lösung: Wir definieren das Interface Comparable. Ein Objekt, das Comparable implementiert, muss eine Methode bereitstellen, das das Objekt mit einem anderen vergleicht, dadurch kann die Liste die Objekte sortieren. Wir können jetzt die Liste so machen, dass sie nur noch Comparables aufnimmt, und dann ist alles geregelt.
Interfaces.png

Edit: Args, wieso ist das ne 1:1-Beziehung in dem Diagramm?
 
B

Berna

Gast
hmm naja thx.-


hab ich schon so ähnlich gelesen. Mir ist es aber leider immer noch unklar
 
G

Gast

Gast
ein anderes beispiel ist das Interface List. Da gibts die Implementierungen LinkedList und ArrayList zu.

Nun kann man einfach mit einer List programmieren und erstmal eine ArrayList nehmen und wenn man nun später merkt das ne LinkedList doch besser wäre, ändert man einfach eine zeile im code.
 

Hilefoks

Bekanntes Mitglied
Nehmen wir an du hast ein Interface Log:
Code:
public interface Log {
    public log(String s);
}

Dieses Interface implementieren wir mal in dieser Klasse:
Code:
public class ConsoleLogger implements Log {
    public log(String s) {
        System.out.println(s);
    }
}

Wir könnten uns jetzt noch viele weitere Logger vorstellen, z.B. einen der den String nicht ausgibt, sondern in eine Datei schreibt. Oder einen der ihn per Mail verschickt.... (ich hoffe du weißt was ich mit Logger meine?)...

Jetzt fehlt uns nur noch eine Klasse die die ganzen möglichen Logger verwaltet:
Code:
public class LogManager {
    private LinkedList<Log> logger=new LinkedList<Log>();

    public void add(Log log) {
        logger.add(log);
    }

    public void log(String s) {
        for(Log log:logger)
            l.log(s);
    }
}

Mit der Methode add(Log log) können wir dieser Klasse einen Logger hinzufügen. Mit der Methode log(String s) aus LogManager können wir unsere Meldungen ausgeben. Diese werden dann an alle Logger weitergeben....

Hier mal die passende Main-Methode:
Code:
public class LoggerTest {
    public static void main(String[] args) {
        LogManager lm=new LogManager();
        lm.add(new ConsoleLogger());
        // und auch andere Logger könnten wir noch hinzufügen
        lm.log("Nachricht");
    }
}
Das Interface "Log" ermöglicht jetzt, das wir einfach einen neuen Logger schreiben können, ohne existierenden Code zu verändern. Einzig in der Main-Methode müssten wir diesen neuen Logger zu unserem LogManager hinzufügen. Durch das Interface ist es dem LogManager also prinzipiell egal wie der Logger wirklich aussieht - für ihn ist nur wichtig das er das Interface "Log" implementiert - den dadurch weiß er das es die Methode log() geben muss.

MfG,
Hilefoks
 

Eldar

Aktives Mitglied
Mir fällt da immer das schöne Beispiel mit der Vererbung ein. Du kannst in Jave (gottseidank) nur von einer Klasse erben... aber von einer ganzen Menge Interfaces...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G 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
R Adapterklassen vs Interfaces Java Basics - Anfänger-Themen 6
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