Folgendes Beispiel:
Header:
Delphi-Quellcode:
type
TSomeAbstractClass = class abstract
procedure someAbstractMethod(); virtual; abstract;
end;
TSomeChildClass = class(TSomeAbstractClass)
// keine Implementation von someAbstractMethod()
end;
Implementation
Delphi-Quellcode:
procedure noAbstractError();
type
TMyClassType = class of TSomeAbstractClass;
const
myClass: TMyClassType = TSomeChildClass;
var
myObject: TSomeAbstractClass;
begin
myObject := myClass.Create(); // Kein Fehler oder Warnung
myObject := TSomeChildClass.Create(); // Compilerfehler/-Warnung
end;
Was kann ich dagegen tun? Ich möchte einmal oben auf einen Block festgelegt haben, eine Instanz welcher Klasse erstellt wird und nicht in die Falle tappen, aus Versehen Klassen zu instanziieren, die nicht alle Methoden implementiert haben.