Hiho,
kann mir jmd sagen wieso ich hier mit 'Abstract error' abgespeist werde?
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31:
| unit test;
interface
type BaseClass = class protected procedure ChildProc; virtual; abstract; published procedure Go(); end;
type ChildClass = class(BaseClass) published procedure ChildProc; end;
implementation
procedure BaseClass.Go(); begin Self.ChildProc() end;
procedure ChildClass.ChildProc; begin writeln('bla'); end;
end. |
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| program ptest; {$APPTYPE CONSOLE}
uses SysUtils, test in 'test.pas';
var bla: ChildClass;
begin try bla := ChildClass.Create(); bla.Go();
except on E: Exception do Writeln(E.ClassName, ': ', E.Message); end;
end. |
Die Idee war es, eine Hauptklasse zu haben, von der die abgeleiteten Klassen sich teilweise anders verhalten, jedoch die gleiche Struktur haben, und auch immer gleich aufgerufen werden (daher das Go() in der Hauptklasse).
Vielen Dank und viele Grüsse,
Marki