Verständnisproblem zu Interface
Ich habe da ein kleines Problem den Sinn bzw. die korrekte Benutzung von einem bzw. mehreren Intrefaces zu verstehen.
Wie sie erzeugt, implementiert werden etc. ist mir klar und kann man ja auch überall nachlesen. Irgendwo glaube ich gelesen zu haben, daß man ein Interface als Schnittstelle benutzt. Zur Zeit hänge ich an dieser Stelle fest: Interface Grundlagen Kann mir einer hier einmal ein ganz einfaches Beispiel zeigen wie sowas funktioniert? Also die dort genannten Beispiele sind mir schon klar und verständlich. Nur von einer Art Schnittstelle ist für mich dort nichts zu erkennen. Der einleitende Satz Zitat:
Expliziet wohl eher die Aussage "der spezifiziert, welche Methoden eine Klasse implementieren muss,". Für mich klingt das eher etwas nach einer Art Funktionsbeschreibung. |
AW: Verständnisproblem zu Interface
aaalso. Bei einem interface werden ja lediglich (public) methoden definiert, also die methoden, die bei einer klasse "von außen" aufgerufen werden können. es werden aber nicht die methoden-körper definiert.
eine klasse, die ein interface implementiert, muss alle methoden, die im interface definiert werden, implementieren (einzige ausnahmen sind abstrakte klassen m.e.). das ganze nützt nur enig, da man in php keine typen kennt so wie z.B. in java. wenn ich in java einen vogel und einen fisch habe, dann kann ich ein interface Tier definieren: Interface Tier { function gibLaut(); } jedes tier in meiner welt implementiert nun dieses interface: class Fisch implements Tier { function gibLaut(){ return "blubb"; } } und der Vogel gibt eben "Zwitscher" zurück. Und jetzt kommen die Schnittstellen ins Spiel. Wenn ich nun eine Liste von Objekten habe, die allesamt Tiere sind, dann weiß ich dass diese Tiere in jedem fall die methode gibLaut() implementiert haben. Tier beschreibt also die methoden, mit denen ich auf Klassen, die Tier implementieren zugreifen kann. Wenn jetzt noah auf seiner arche sitzt und eine liste mit Tieren hat, müsste der in Java die Typen für die Objekte der liste mit angeben. und obwohl alle objekte einen anderen typ haben (nämlich z.b. vogel oder fisch), haben sie alle das interface Tier implementiert, sind also vom "Supertyp" Tier. Die liste in java sähe dann so aus: List<Tier> arche = new LinkedList<Tier>(); und könnte fische, vögel, säugetiere usw enthalten. in php dagegen kann man beim übergeben eines objektes überprüfen, ob das objekt ein gewisses interface implementiert hat und sich dann sicher sein, die darin implementierten methoden aufrufen zu können. |
AW: Verständnisproblem zu Interface
Zitat:
Zitat:
eine klasse, die ein (oder mehrere) interface(s) einbindet, muss alle methoden implementieren, die im jeweiligen interface notiert sind. wie die methode arbeitet, interessiert dabei allerdings nicht - hauptsache, die methode taucht in der klasse auf und besitzt dieselbe signatur. das (verkürzte) beispiel aus dem php-manual: PHP-Code:
cx |
AW: Verständnisproblem zu Interface
Ok, ich glaub jetzt so langsam den Faden dazu gefunden zu haben. Wenn ich richtig für micht persönlich liege, dann kann ich dieses Thema erst einmal weglassen und mich in andere weiter vertiefen.
Ich danke euch alle für die "einfachere" Beschreibung eines Interface und für den Link. |
Alle Zeitangaben in WEZ +2. Es ist jetzt 07:22:15 Uhr. |
Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.