4.12.7 | Vererbung bei Interfaces |
Interfaces können genauso wie Klassen vererbt und erweitert werden. Analog zu den Klassen wird auch hier das Schlüsselwort extends benutzt.
Das Interface GraphObj könnte beispielsweise um zwei Methoden erweitert werden, mit denen die Daten eines grafischen Objekts in eine Datei abgespeichert und geladen werden könnten:public interface FileGraphObj extends GraphObj { void load(); void save(); }Eine Klasse, die das Interface FileGraphObj implementiert, muss nun über die in GraphObj deklarierten Methoden hinaus noch die Methoden load() und save() implementieren.
Es gibt allerdings einen wichtigen Unterschied zwischen der extends-Klausel bei Klassen und der bei Interfaces:
Interfaces dürfen mehrere Ober-Interfaces haben. Somit kann die extends-Klausel mehrere Interfaces enthalten. Die Interface-Bezeichner werden dann durch Kommas getrennt hinter extends aufgezählt:public interface DataContainer extends Cloneable, Comparable, Serializable { ... }