Abstrakte Klasse
Aus KGS-Wiki
Eine abstrakte Klasse ist eine besondere Art von Klasse.
Manche Klassen möchte man nicht direkt instanziieren können, sondern nur ihre Kinder. Dann kann man diese Klasse als abstrakt deklarieren, Abstrakte Klassen dürfen auch abstrakte Methoden enthalten, deren Methodenrumpf leer ist und deren Verhalten für jede Kind-Klasse einzeln definiert werden muss.
public abstract class Animal {
// abstrakte Methode makeNoise -- jede Tierart macht ihr eigenes Geräusch
public abstract void makeNoise();
// Methode eat -- muss nicht von erbenden Klassen überschrieben werden.
public void eat() {
System.out.println("nom nom");
}
}
public class Dog extends Animal {
public void makeNoise() {
System.out.println("woof!");
}
}
public class Cat extends Animal {
public void makeNoise() {
System.out.println("meow!");
}
public void eat() {
super.eat();
wait();
vomitTheWholeCrapOverTheLivingRoomCarpet();
}
}
In diesem Beispiel können keine Animal
-Objekte mit dem Aufruf new Animal()
erzeugt werden. Animal
legt aber fest, dass alle Unterklassen wie Dog
und Cat
eine Methode namens makeNoise()
enthalten müssen.