Vorlesung Informatik 1 - Teil A: Java Kurs

2.3 Abstrakte Klassen und Methoden

Eine abstrakte Klasse kann nicht Instanziiert werden . Sie dient lediglich als Basisklasse.

public abstract class Fahrzeug{
     // es können keine Fahrzeug-Objekte erzeugt werden 



Davon abgesehen kann eine abstrakte Methode aber alles enthalten, was 'normale' Klassen auch haben: Variablen und Methoden.
  • Man verhindert, dass "aus Versehen" Objekte erzeugt werden,
  • man weist darauf hin, dass es abgeleitete Klassen gibt

Eine abstrakte 
Methode ist nur ein Platzhalter
      public abstract  void schwimmen(w: Wasser);

  • Enthält eine Klasse mindestens eine abstrakte Methode, muss auch die Klasse abstrakt sein! 
  • Abgeleiteten Klassen müssen die abstrakten Methoden implementieren oder selbst abstrakt sein.

in UML: <<abstract>> class StandardAnwendung    bzw. <<abstract>> void initialisiere(); 

Beispiele:  

  • abstract class StandardAnwendung: enthält zwar keine abstrakten Methoden, soll aber nur als Basisklasse dienen. 
  • abstract class Spiel: enthält abstrakte Methoden: initiaisiere, neuerSpielstand und zeichneSpielstand.
  • eine Reihe von API Klassen beginnen mit Abstract (AbstractQueue, AbstracSet, ...). Im ersten Semester verwendeen wir keine davon.
Indirekt  werden schon Objekte von abstrakten Klassen erzeugt, denn in jedem Objekt einer abgeleiteten Klasse steckt ein Objekt der Basisklasse. 

Später werden wir sehen, dass  man auch Variablen vom Type einer abstrakten Klasse definieren kann. 
                 

Weiterführende Links

Abstrakte Klassen und Methoden in Java ist auch eine Insel

Lehrvideo  (YouTube)