Genau das gefällt mir auch nicht wirklich. Die Schuld liegt da irgendwie eher an der Delphi-Sprache selber, "echte" abstrakte Klassen kennt es nicht.
Delphi-Quellcode:
INeustartbar = interface
['{C952DFE2-65A3-48A4-8681-81F97946DB5A}']
procedure restart();
end;
ISchreibenLesen = interface
['{DBAF7078-C915-471F-8C37-F679253220BE}']
procedure writeStuff();
procedure readStuff();
end;
(
AMessgerät = class abstract(TInterfacedObject, ISchreibenLesen)
public // Warum ist das hier überhaupt notwendig?
procedure readStuff; virtual; abstract;
procedure writeStuff; virtual; abstract;
end;
TMessgerät1 = class(AMessgerät)
procedure spezialKram();
end;
TMessgerät2 = class(AMessgerät, INeustartbar)
public
procedure spezialKram();
procedure restart();
end;