|
Interfaces (Schnittstellen) Interfaces dienen dazu Methodendeklarationen von mehreren Klassen zu vererben. Ein Interface ist ein besondere Form einer Klasse, die ausschließlich die Definition von Methoden und Konstanten enthält, nicht aber ihre Implementierung, sogenannte abstrakte Objekte. Syntax: public interface Interface-Name { ... } Beispiel: public interface Forbewegungsmittel { public int kapazitaet(); public double kilometerpreis(); } Das Interface muß in der Klasse implementiert werden, hier zu dient der Befehl implement. Hierbei wird überprüft, ob zu allen abstrakten Methoden auch die zugehörigen Implentationen vorhanden sind. Syntax: public class Klassen-Name implements Interface-Name {
...
}
Beispiel:
public class Auto
implements Forbewegungsmittel
{
public String name;
public int erstzulassung;
public int leistung;
public int anzahlsitze;
public double spritverbrauch;
public double spritpreis;
public int kapazitaet();
{
return anzahlsitze;
}
public double kilometerPreis();
{
return spritverbrauch*spritpreis/100;
}
}
Ebenso wie die Klasse Auto könnte auch jede andere Klasse das Interface Fortbewegungsmittel
implementieren und Konkretisierungen der beiden Methode vornehmen. Eine
andere Klasse, die in keinem Zusammenhang mit der Klasse Auto und ihrer Vererbungshierarchie
steht, könnte ebenfalls das Interface implementieren, beispielsweise die Klasse
Teppich.
Weiter gilt:
- Auch abgeleitete Klassen können Interfaces implementieren.
- Eine Klasse kann eine beliebige Anzahl von Interfaces implementieren.
- Interfaces lassen sich vererben.
Interfaces kann man als Typvereinbarung ansehen. Eine Klasse, die dieses Interface implementiert
ist dann vom Typ dieses Interfaces. Wegen der Mehrfachvererbung von Interfaces
kann eine Instanzvariable damit insbesondere mehrere Typen haben und zu mehr als einem
Typen zuweisungskompatibel sein.
|
|
|