LU05a - Vererbung
Interfaces
Eine Klasse kann eine oder gar mehrere Interfaces implementieren. Nichtabstrakte Klassen müssen alle Methoden ihrer implementierten Interfaces implementieren.
Abstrakte Klassen
Eine abstrakte Klasse ist eine Zwischenform zwischen einem Interface und einer nichtabstrakten Klasse. Sie kann Methoden bereits implementieren oder ohne Implementation definieren. Von einer abstrakten Klasse kann keine direkte Instanz erstellt werden, nur von einer erbenden, nichtabstrakten Klasse.
UML | Java |
---|---|
![]() | interface Animal { void eat(); } abstract class Mammal implements Animal { @Override public void eat() { System.out.println("This mammal is eating."); } abstract void makeSound(); public void breathe() { System.out.println("Breathing air..."); } } class Dog extends Mammal { @Override void makeSound() { System.out.println("Woof!"); } } |
Abstrakte Klassen sind daher nützlich, wenn man gewisse Basisfunktionen in einer gemeinsamen Parentklasse implementieren will, aber wiederum andere Methoden erst in der jeweiligen Implementierungsklasse.