abstrakte Klassen

Eine abstrakte Klasse kann sowohl Variablen wie auch komplette Methoden enthalten. Im Unterschied zur Klasse kann aber von einer abstrakten Klasse kein Objekt direkt gebildet werden.

Sie wird in der Regel von normalen Klassen geerbt und dient zur Definition von starken Verallgemeinerungen. Abstrakte Klassen können wiederum von abstrakten Klassen erben.

Zum Beispiel könnte eine Klasse „Fahrzeug“ abstrakt sein. Die Klasse PKW ebenfalls. Fahrzeug wird PKW vererbt und PKW dann der normalen Klasse Mercedes. Mercedes ist dann weit genug spezialisiert, das es Sinn macht, davon ein Objekt zu bilden.

Beispiel:

public abstract class Fahrzeug {
  String eigenschaft1 = "dient der Fortbewegung";
}
public abstract class Pkw extends Fahrzeug {
  String eigenschaft2 = "hat vier Räder";
}
public class Mercedes extends Pkw {
  String eigenschaft3 = "hat einen Mercedesstern";

  public static void main(String[] args) {
    Mercedes benz = new Mercedes();
    System.out.println(benz.eigenschaft1);
    System.out.println(benz.eigenschaft2);
    System.out.println(benz.eigenschaft3);
  }

  public Mercedes() {
  }

}

Als Ergebnis erscheint in der Konsole:

dient der Fortbewegung
hat vier Räder
hat einen Mercedesstern

das gebildete Objekt Mercedes erbt durch extends Pkw alle Eigenschaften von Pkw . Da Pkw die Eigenschaft von Fahrzeug geerbt hat, enthält Mercedes nun drei Eigenschaften.