Einzelnen Beitrag anzeigen

Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Vererbung bei Implementierung eines Interfaces

  Alt 14. Jul 2018, 23:29
Ich bin mir gerade nicht mehr ganz sicher (und kann es leider auch nicht ausprobieren) ob man Interface Methoden als virtual; deklarieren kann. Wenn ja, dann könntest du es so ausprobieren:

Delphi-Quellcode:
IMyInterface = interface
['{someGUID}']
  
  procedure MyFirstProcedure; // <-- Eventuell hier ein virtual falls der Compiler meckert und hier ein virtual erlaubt ist
end;

TMyClass = class(TInterfacedObject, IMyInterface)
  private
    procedure MyFirstProcedure; virtual;
end;

TMyFirstDerivedClass = class(TMyClass)
  private
    procedure MyFirstProcedure; override;
end;

TMySecondDerivedClass = class(TMyClass)
  private
    procedure MyFirstProcedure; override;
end;
Wenn nicht, dann könntest du es auch so lösen. Kommt eben darauf an, ob ein Teil der Interface Methoden gleich ist und ein weiterer Teil sich unterscheidet:

Delphi-Quellcode:
IMyInterface = interface
['{someGUID}']
  
  procedure MyFirstProcedure;
end;

TMyClass = class(TInterfacedObject)
  private
    procedure MyFirstProcedure; virtual;
end;

TMyFirstDerivedClass = class(TMyClass, IMyInterface)
  private
    procedure MyFirstProcedure; override;
end;

TMySecondDerivedClass = class(TMyClass, IMyInterface)
  private
    procedure MyFirstProcedure; override;
end;
  Mit Zitat antworten Zitat