Tach!
So richtig erschliesst sich mir der Sinn von Interfaces noch nicht.
Ein Interface ist eine Art Versicherung/Vertrag, dass die Klasse, die das Interface implementiert, alle Mitglieder des Interfaces implementiert hat.
Jetzt könnte man doch aber das Ganze auch einfach so schreiben:
Also ganz ohne interface.
Ja, aber dann kannst du eine Vogel-Klasse ohne getName() erstellen und Code, der sich auf diese Methode verlässt, greift ins Leere. Zusammen mit Type Hinting kannst du bei einem Parameter einer Funktion/Methode sicherstellen, dass nur Klassen mit einer solchen Methode übergeben werden können.
Was bringt einem das Interface wenn man doch jedes mal in der Klasse die Funktion "getName" aufrufen muss?
Wieso "aufrufen muss"? Meinst du vielleicht, dass man die Methode erstellen muss? Dann, siehe oben. Das Interface ist nur der Vertrag auf einem Blatt Papier. Die Leistung erbringen muss eine konkrete Klasse.
dedlfix.