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.
Später werden wir sehen, dass man auch Variablen vom Type einer abstrakten
Klasse definieren kann.