E2136 Definition für abstrakte Methode '%s' nicht erlaubt (Delphi)
Nach oben zu Fehler- und Warnungsmeldungen (Delphi)
<Element> ist als abstract deklariert. Der Compiler hat jedoch in der Quelldatei eine Definition für die Methode gefunden. Es ist nicht erlaubt, für eine abstrakte Deklaration eine Definition bereitzustellen.
program Produce; type Base = class procedure Foundation; virtual; abstract; end; procedure Base.Foundation; begin end; begin end.
Abstrakte Methoden dürfen nicht definiert werden. Wenn Sie dieses Programm compilieren, tritt an der Stelle Base.Foundation ein Fehler auf.
program Solve; type Base = class procedure Foundation; virtual; abstract; end; Derived = class (Base) procedure Foundation; override; end; procedure Derived.Foundation; begin end; begin end.
Zur Behebung dieses Problems sind zwei Schritte erforderlich. Zuerst müssen Sie die Definition der abstrakten Prozedur in der Basisklasse entfernen. Dann müssen Sie die Basisklasse erweitern, die abstrakte Prozedur als override deklarieren und für die neue Prozedur eine Definition bereitstellen.