Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
wir hatten neulich in der Schule das thema interfaces behandelt. Leider habe ich nicht ganz begriffen, warum interfaces so toll sind?!
Der Lehrer hat irgendetwas erzählt, dass interface eine alternative sind zur Vererbung, da mehrfachvererbung in java ja nicht funktioniert.
Wenn ein interface benutzt wird, müssen ja immer alle methoden im interface zwingend überschrieben werden. Was ist nun so toll daran und was hat das mit vererbung zu tun.. ich muss ja sowieso in jeder klasse, in welcher ich das interfache verwende die methoden nocheinmal schreiben.. ich konnte genau so gut ohne interface arbeiten und in jeder klasse selber eine methode schreiben nicht?
Aus einem interface werde ja nur die methodenköpfe übernommen, keine eigentlichen funktionen. und man kann auch keine methoden, welche in einer klasse überschrieben wurden übernehmen?
Kann mir jemand verraten was so toll ist an einem interface oder habe ich es begriffen ist aber gar nicht so berauschend?
Du kannst natürlich alle Methoden, die ein Interface vorgeben würde, auch in die entsprechende Klasse einbauen ohne das Interface zu verwenden. Wenn Du das Interface allerdings implementierst (class KLASSENNAME implements INTERFACENAME), bist Du eben dazu gezwungen, die im Interface hinterlegten Methoden zu implementieren.
Man kann Interfaces auch als eine Art Erinnerung sehen. Hat man mehrere Klassen, die alle bestimmte Eigenschaften haben, kann man die Implementierung dieser über Interfaces vereinfachen.
Die Interfaces Runnable, Callable usw. sind Beispiele dafür. Man ist echt blöd zu erklären.
Klassenbeispiel:
A extends X
B extends X
C extends Y
Nun willst du eine Typeigenschafft (nennen wir mal S) konstruieren die A und C betrifft, B aber nicht.
Bei der mehrfachvererbung macht man nun dies:
A extends X, S
C extends Y, S
jiim hat gesagt.:
Wenn ein interface benutzt wird, müssen ja immer alle methoden im interface zwingend überschrieben werden. Was ist nun so toll daran und was hat das mit vererbung zu tun.. ich muss ja sowieso in jeder klasse, in welcher ich das interfache verwende die methoden nocheinmal schreiben.. ich konnte genau so gut ohne interface arbeiten und in jeder klasse selber eine methode schreiben nicht?
Ein Vorteil der Mehrfachvererbung ist es zum Beispiel eine Methode zu schreiben wie folgt:
macheEtwas(S arg) { ... }
Also eine Methode die als Parameter alle Objekte vom Typ S behandeln kann, also vom Typ A oder C.
Jetzt stelle dir vor du hast keine Mehrfachvererbung und versuche eine Methode zu schreiben die nur Objekte vom Typ A oder C behandelt.
(Harte Nuss und eine Menge Schreibarbeit.)
Und dann überlege wie dir Interfaces da helfen können.
Ich hoffe auf den Rest kommst du dann selbst. :wink: