Benutzer-Werkzeuge

Webseiten-Werkzeuge


polymorphismus:abstractclasses

Abstrakte Klassen

Es macht eigentlich keinen Sinn, die Methode sagwas() in der Klasse Tier zu implementieren. Es würde reichen, sie dort nur zu deklarieren (void sagwas();) und die Implementierung (d.h. die Erstellung der Anweisungen in der Methode drin) den Unterklassen Katze und Hund zu überlassen. Dies können wir erreichen, indem wir die Klasse Tier und die Methode sagwas() als abstract deklarieren: Merke:

  • Wird eine Methode in einer Klasse nur deklariert, aber nicht implementiert, so nennt man sie abstrakte Methode.
  • Eine Klasse, die mindestens eine abstrakte Methode besitzt, heißt abstrakte Klasse.
  • Von einer abstrakten Klasse kann man keine Objekte instanzieren, wohl aber von Unterklassen, bei denen alle abstrakten Methoden implementiert sind.
  • Der Compiler stellt sicher, dass jede nicht-abstrakte Unterklasse einer abstrakten Klasse für alle abstrakten Methoden eine Implementierung besitzt.

Beispiel 2: Raumschiff mit verschiedenen Kanonen

Aufgabe:

Erfinde eine andere Art von Kanone, schreibe eine entsprechende Klasse und probiere sie im obigen Programm aus.

polymorphismus/abstractclasses.txt · Zuletzt geändert: 2023/03/12 19:34 von Martin Pabst

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki