# Interface als Parameter übergeben



## jollyroger (5. Okt 2006)

Hi, 

ich hab nichts in meinen Büchern zu folgendem gefunden:

Angenommen ich hab ein Interface:



```
public interface Foo {

public void bar();
}
```

Und ich übergebe das der Klasse bla der Methode blub:


```
public class Bla{

public void blub(Foo foo) {
 
}

}
```

Was bewirkt das?

Ich hab einen solchen Code-Schnipsel bei einem Kollegen gesehen, der ist leider nicht mehr da, also kann ich ihn nicht fragen.......und dazu hab ich auch sonst nichts gefunden....

Danke für die Erleuchtung!


----------



## Leroy42 (5. Okt 2006)

Das bedeutet, daß die Methode blub mit Instanzen jeder Klasse,
die Foo implementiert (also eine Methode bar bereitstellt), aufgerufen werden kann.

Aus Sicht der Methode blub wird eine beliebige, Foo implementierende, Klasse
ausschließlich auf die Eigenschaft reduziert, daß sie Foo zur Verfügung stellt;
also auf den Parameter foo darf innerhalb der Methode blub ausschließlich
die Methode bar angewendet werden.

 :autsch: 

Also nach dieser Erklärung muß ich jetzt wirklich mal hierhin...


----------



## SlaterB (5. Okt 2006)

das bewirkt, dass blub mit dem übergebenen Objekt foo arbeiten kann,
nämlich alle Operationen aufrufen kann, die im Interface Foo definiert sind,

unabhängig davon, um welche der 7500 Klassen, die dieses Interface implementieren, es sich handelt


----------



## jollyroger (5. Okt 2006)

ok, 

danke für die Antwort!


----------



## EOB (5. Okt 2006)

man spricht auch von 'richtung interface implementieren'...macht den code sehr flexibel. 

gruesse


----------

