Diese "tanken"-Methode ist schon in der Basisklasse kaputt.
Beim Tanken gibt es zwei wichtige Parameter: die Menge und die Art des Sprits.
Delphi-Quellcode:
TSpritSorte = (sDefault{=Spritsorte die ein Fahrzeug normalerweise benötigt},
sBenzin, sDieselPkw, sSuperE5, sSuperE10);
TFahrzeug=Class
procedure tanken(liter:Currency; sorte:TSpritSorte); virtual;
End;
Wenn man Klassen ableitet, dann darf man nicht die Signatur von virtuellen Methoden in abgeleiteten Klassen ändern.
Man muss virtuelle Methoden so anlegen, dass sie immer passen.
Falls es trotzdem klemmt liegt das daran, das ein Fahrzeug nicht zwingend betankt werden muss.
Ein Fahrrad ist z.B. auch ein Fahrzeug; braucht aber keinen Sprit.
Beim LKW ist das Nachfüllen von Harnstoff (AdBlue) eher ein Wartungsvorgang als ein Tankvorgang (so wie man Motoröl und Wischwasser nachfüllt).
siehe auch:
Kreis-Ellipse-Problem