Axel Richter: Interfaces - Verständnisfrage

Beitrag lesen

Hallo,

So muss ich die Methode doch auch für jede Klasse schreiben, oder nicht?

Ja, aber es ist sichergestellt, dass der Aufbau der Methoden, die aus der Implementierung des Interfaces resultieren, immer gleich ist.

Oder nimmt eine 2. Klasse, die auch Groesse implementiert und selbst die Methoden nicht neu definiert, die Methoden von Fussballplatz (bezweifle ich)?

Nein, aber wenn sie das Interface impementiert, muss sie die Methoden in gleicher Weise aufbauen.

Interfaces beschreiben eben eine Schnittstelle, damit man diese Schnittstelle an anderen Stellen im Code verwenden kann, ohne die konkrete Klasse zu kennen.
Versteh ich leider nicht ganz, ich muss doch über die Klasse wissen, ob es Groesse implementiert,

Warum? Du musst nicht wissen, welche Klassen es gibt, die ein bestimmtes Interface implementieren. Du musst nur wissen, dass es dieses Interface gibt.

dann kann ich doch auch genauso gut wissen, dass es diese Methoden selbst definiert (ohne Interface).

Und dann? Wie willst Du anderen Klassen diese Methoden zur Verfügung stellen? Eine Klasse kann _genau_ eine Superklasse erweitern. Mehrfachvererbung gibt es nicht.

Im Java Tutorial gibt es dazu das Beispiel der Klasse "Fahrrad". Die Klasse selbst beschreibt was ein Objekt können und darstellen muss, um ein Fahrrad zu sein.

Fahrräder werden aber eben auch verkauft. Hierfür brauchen sie Eigenschaften wie Bestellnummer, Preis usw. Verkauft werden aber auch Autos, Videorekorder, Bücher ... auch die brauchen dafür Bestellnummer und Preis.

Nun könnte man die Beschreibung der Verkaufbarkeit den einzelnen Klassen überlassen. Dann würde es aber garantiert vorkommen, dass ein Klasse die Eigenschaften "int BestNr" und "float Preis", eine andere "String ISBN-Nr" und "double Preis", eine weitere ... definiert.

Die Verkaufbarkeit ist deshalb ein Interface und jedes verkaufbare Objekt implementiert dieses Interface mit den selben Definitionen und akzeptiert somit eine Vereinbarung, die die Verkaufbarkeit regelt.

Außerdem kann eine Klasse mehrere Interfaces implementieren, wogegen sie nur eine Klasse erweitern(beerben) kann. So kann ein Fahrrad nicht nur Verkaufbarkeit, sondern auch z.B. einen Wartungsplan und/oder Entsorgungshinweise implementieren.

viele Grüße

Axel