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 !!!!   
   }
}