Hirnbrand: Abstrakte methoden praxistest

Beitrag lesen

Hi,

ich schreibe mal rein aus dem Gedächtnis ohne Gewähr.

Von als abstract deklarierte Klassen oder Methoden dürfen keine direkten Instanzen erstellt werden (Für den Compiler wichtig). Sie dürfen genutzt werden (eine Implementierung ist vorhanden) aber nur in Ableitungen.

Damit ich die 20 Ableitungen nicht alle anpassen muss, bekommt die erste Ebene meiner Vererbungshierarchie eine "Dummy" Methode, welche einen Standardwert zurück gibt. Wenn eine Ableitung diese Methode benutzen möchte überschreibt sie einfach die dummy Methode und füllt die echte Methode mit entsprechendem Leben.

Nein, sie werden nicht überschrieben, sie müssen implementiert werden und können dann auch gerne die abstrakte Implementierung der Basisklasse nutzen. Was du meinst sind virtuelle Methoden. Diese zeigen dann auf die tatsächliche Implementierung der Instanz.

Beides ist nicht mit Schnittstellendefinitionen (interface) zu verwechseln. Wenn du zur Compiler-Zeit niemals gesagt hast, dass deine Klasse das oder jenes kann, dann nützt dir auch kein abstract oder virtual.

Gruß Hirnbrand