Benutzer-Werkzeuge

Webseiten-Werkzeuge


klassen2:abstrakt:start

Dies ist eine alte Version des Dokuments!


Abstrakte Klassen

Oft ist es nicht sinnvoll, Objekte einer Oberklasse zu instanzieren, weil sie "abstrakt" ist, d.h. noch nicht über alle Attribute/Methoden verfügt. Wir sehen uns dazu wieder ein einfaches Beispiel an: Die Klasse Tier besitzt ein Attribut art. Von ihr leiten wir die Unterklassen Hund und Katze ab:

Abstrakte Methoden

Jedes Tier soll eine Methode sagwas() besitzen. Ruft man die Methode für ein Objekt der Klasse Hund auf, so soll "Wau, wau!" ausgegeben werden, ruft man sie für ein Objekt der Klasse Katze auf, so soll "Miau" ausgegeben werden. Wenn wir - wie im Kapitel Casting und der Operator instanceof - die Methode sagwas() in den Klassen Hund und Katze implementieren, dann können wir sie nur aufrufen, wenn die Objektvariable vom Datentyp Hund oder Katze ist. Bei Objektvariablen vom Typ Tier müssen wir vorher mithilfe des Operators instanceof herausfinden, um welche Klasse es sich handelt und dann entsprechend casten.
Viel klarer wäre es doch, wenn die Klasse Tier eine Methode sagwas() enthalten würde, diese Methode aber erst in ihren Unterklassen mit Inhalt gefüllt wird. Das geht, wenn wir sowohl die Klasse Tier als auch die Methode sagwas() als abstract kennzeichnen:

klassen2/abstrakt/start.1588157027.txt.gz · Zuletzt geändert: 2021/12/29 11:29 (Externe Bearbeitung)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki