Tja, sind in .Net statische abstrakte Methoden wohl nicht mehr erlaubt. Nicht abstrakt funktioniert es genauso:
Delphi-Quellcode:
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
type
TAbstraktClass = class
private
public
class function GetValue: Integer; virtual;
end;
TRealClass = class(TAbstraktClass)
private
public
class function GetValue: Integer; override;
end;
{ TRealClass }
class function TRealClass.GetValue: Integer;
begin
Writeln('TRealClass.GetValue');
Result := 15;
end;
{ TAbstraktClass }
class function TAbstraktClass.GetValue: Integer;
begin
Writeln('TAbstraktClass.GetValue');
Result := 0;
end;
begin
Writeln(TRealClass.GetValue.toString);
Readln;
end.
ich benötige halt nur eine Dummy-Routine, welche nie aufgerufen wird.
In C# habe ich beim Versuch, eine Methode static abstract zu machen, gleich einen Compiler-Fehler bekommen.