Java abstrakte Klasse
Es ist eine Java klasse, die nicht initialisiert werden kann.
Syntax
abstract class ClassName{
}
Bsp
// Abstrakte Klasse
abstract class Tier {
// Abstrakte Methode (ohne Implementierung)
public abstract void lautGeben();
// Normale Methode (mit Implementierung)
public void schlafen() {
System.out.println("Das Tier schläft.");
}
}
// Konkrete Subklasse
class Hund extends Tier {
// Implementierung der abstrakten Methode
@Override
public void lautGeben() {
System.out.println("Der Hund bellt: Wuff Wuff!");
}
}
public class ProgramB {
public static void main(String[] args) {
Hund meinHund = new Hund();
meinHund.schlafen(); // Ausgabe: Das Tier schläft.
meinHund.lautGeben(); // Ausgabe: Der Hund bellt: Wuff Wuff!
}
}
Bug
Eine Initialisierung von der Java klasse Tier
ist nicht möglich, nur seine CHILDREN CLASSES.
public class ProgramB {
public static void main(String[] args) {
Hund meinHund = new Hund();
meinHund.schlafen(); // Ausgabe: Das Tier schläft.
meinHund.lautGeben(); // Ausgabe: Der Hund bellt: Wuff Wuff!
Tier meinTier = new Tier(); // !!!!! ERROR !!!!
}
}