Warum ist das Programmieren gg Interfaces sinnvoll

Hallo zusammen,

ich weiss nicht genau, ob ich richtig bin. Aber ich versuche es mal trotzdem, weil auch um Java geht.
Warum ist es sinnvoll Interfaces einzusetzen?
Besonders, wenn eine 3-Schichtige Anwendung implementiert werden soll?

Wenn ich ein Interface Auto habe und verschiedene Klassen, die es implementieren: VWAuto, ToyotaAuto, FordAuto…
Wie sorgen Interfaces für die Austauschbarkeit der Klassen?

Vielen Dank
Richard

Das verwenden von Interfaces ist sinnvoll, weil jede Klasse durch implementieren davon, sicherstellen kann, gewisse Funktionalität/Eigenschaften zur Verfügung stellen zu können, ohne von einer bestimmten Klasse erben zu müssen. Dadurch können im Programm die Deklarationen als Interface gemacht werden und man hat alle vorgegebenen Funktionen zur Verfügung.

Also gutes Beispiel nenn ich mal das Interface java.sql.Connection!
Jeder JDBC-Treiber implementiert dieses Interface, damit hat jedes Programm die Möglichkeit alle Funktionen einer Connection zu nutzen, ohne darauf zu achten welcher JDBC-Treiber jetzt wirklich verwendet wird und kann so unabhängig von der Implementierten Klasse bleiben :wink:

Noch ein kleiner Link dazu
http://www.galileocomputing.de/openbook/javainsel7/j…

Hoffe geholfen zu haben und nohc nen schönen Tag
LG Matthias

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Richard,

um bei deinem Beispiel zu bleiben:
Ein Auto kann man in der Regel fahren, und dafür ist es eigentlich egal, was für ein Auto das ist, ob VW oder Mazda oder was-weiss-ich (über den Komfort reden wir hier nicht!)

Also wäre es schön, wenn du einfach sagen könntest: Auto.fahre(), ohne wissen zu müssen ob das nun ein VW oder Audi ist. Wenn nun die einzelnen Autotypen das Interface Auto implementieren sagen sie nach außen: ich habe die Methode fahre().

Wenn du jetzt zur Garage (= Liste von verschiedenen Autos) gehst und einfach das erste nimmst, kannst du zu dem einfach fahre() sagen und dir sicher sein das da was passiert. Was für ein Auto das konkret ist, muss dich in diesem Zusammenhang nicht interessieren, es reicht zu wissen, das es ein Auto ist. Das erspart die lange Verzweigungen der Art:
Wenn es ein VW ist mache VW.fahre()
Wenn es ein Mazda ist mache Mazda.fahre() …

Ich hoffe ich habe die Verwirrung nicht noch vergrößert :wink:

Daniel