Beste Delphinauten,
Ik wil een inherited class property maken.
- Een class property maken in de Master
- Een lokale getter in de de Master, want een getter moet static zijn.
- Een abstracte class procedure, die opgeroepen wordt door de getter.
- Een implementatie in de van de class procedure in de Child.
Het schrijven en compileren lukt.
Het uitvoeren geeft een abstract error bij het oproepen van de class procedure in de getter.
Wat mis ik?
Bestaan er andere wegen om een overerfbare polymorfe class property te maken?
PHP Code:
unit Unit1;
interface
type TMaster = class
private
class function GetMasterId: integer; static; {MOET een static method zijn om als getter voor een property te dienen}
protected
class function GetChildID: integer; virtual; abstract;
public
class property id: integer read GetMasterId ;
end;
TChild = class(TMaster)
protected
class function GetChildID: integer; override;
end;
implementation
{ TMaster }
class function TMaster.GetMasterId: integer;
begin
result := GetChildID ; { <= hier geeft hij een abstract error}
end;
{ TChild }
class function TChild.GetChildID: integer;
begin
result := 1
end;
end.
Bookmarks