Wozu Interfaces ?

Status
Nicht offen für weitere Antworten.

ramonl

Mitglied
Wir haben gerade Interfaces in Java kennengelernt, nur sehe ich noch nicht so ganz den SInn in der Sache...

Angenommen ich habe ein Interfaces, welches 4 Methoden besitzt. Diese Methoden werden nun von divers Klassen gebaraucht, weil sie immer anders implementiert werden müssen.

Ok, das wäre ein grund warum ja vererbung nicht geht, weil dann könnte man nicht was versch. implementieren, aber wozu dann überhaupt noch das Interface,wenn man eh immer implementieren muss, dann kann man das doch auch weglassne, und in den Klassen nur direkt immer die Methoden implementieren ?!


Sorry für Rechtschreibfehler !
 
ramonl hat gesagt.:
wozu dann überhaupt noch das Interface,wenn man eh immer implementieren muss, dann kann man das doch auch weglassne, und in den Klassen nur direkt immer die Methoden implementieren ?!

Beispiel:

Nun stell Dir einfach mal vor, Du implementierst in zwei unterschiedlichen Klassen die Methode
Code:
public void run()
. Die run()-Methoden sollen in einem extra Thread gestartet werden. Du willst dann also von einer Instanz von java.lang.Thread diese run()-Methode aufrufen.

Für diesen Zweck hat sun das Interface Runnable entwickelt. Der Gedanke ist einfach: Wenn etwas Runnable implementiert, dann hat es eine run()-Methode. Nun bekommt die Thread-Instanz eine Instanz von Runnable übergeben und kann (da das Interface ja korrekt implementiert sein muss) einfach die run()-Methode aufrufen. Dazu muss er die Klasse gar nicht kennen. Und trotzdem ist durch das Interface sichergestellt, dass die Methode existiert und genutzt werden kann.

Wenn man statt dessen lediglich eine solche Methode anlegen würde ohne das Interface zu implementieren, wäre dem Thread nicht bekannt, ob diese run()-Methode existiert. Die Folge wäre, dass der Thread diese Methode nicht aufrufen kann, da sie aus seiner Sicht nicht existiert.

Verstanden?

Es grüßt Ebenius

@Moderator: Verschiebt mal nach Anfänger!
 
Naja, das werde ich nie so ganz verstehen, aber mal was anderes, wenn man import-sachen benutzt, z.b. die ArrayList oder sowas, dann bedeutet import doch sowas ähnliches wie, als ob man von der Klasse erbt,oder ?


Man kann halt die Methoden benutzen...
 
ramonl hat gesagt.:
Naja, das werde ich nie so ganz verstehen, aber mal was anderes, wenn man import-sachen benutzt, z.b. die ArrayList oder sowas, dann bedeutet import doch sowas ähnliches wie, als ob man von der Klasse erbt,oder ?


Man kann halt die Methoden benutzen...

Es bedeutet, dass du die importierten Objekte verwenden kannst. Ist ähnlich wie "include" in C(++).
 
eine ergänzung meinerseits:

es ist eine zusicherung, dass eine bestimmter methodenname exisitiert und dessen rückgabewert erfüllt ist.

zb bei enumerations (aufzählung), könnte oft das ganze viel einfacher funktionieren, wenn der passende typ zurückgegeben wird. aber dem rest des programmes kann es absolut egal sein, wie das ganze funktioniert. den es besteht die zusicherung, das diese methode existiert und der passende rückgabewert erfüllt wird.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben