Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#9

AW: Klasse von TTHread ableiten und Interface implementieren, Objekt erstellen

  Alt 13. Sep 2011, 08:15
Ich hab gedacht da IDeviceController schon IInterface implementiert, hat TDeviceController das dadurch auch. Ich war mir nicht sicher ob das bei den Interfaces in Delphi mitvererbt wird.
IDeviceController erbt zwar die Methoden von IInterface und somit muss jede Instanz, die IDeviceController unterstützt (Supports), auch diese Methoden implementieren, aber jede Klasse unterstützt genau die Interfaces, die hinter der Parent-Klasse angegeben sind:

TMyClass = class(TObject, IDeviceController) unterstützt IDeviceController aber nicht IInterface,

TMyClass = class(TObject, IInterface, IDeviceController) unterstützt IInterface und IDeviceController.

Natürlich wird Interface-Unterstützungg vererbt. Deswegen funktioniert auch TMyClass = class(TInterfacedObject, IDeviceController) .

Das erste mag etwas verwundern, wenn man Interface-Vererbung (die ähnlich wie Klassenvererbung funktioniert) und Interface-Unterstützung (das was man mit Supports bzw. QueryInterface abfragt) nicht auseinanderhält. Es handelt sich aber hierbei um zwei verschiedene Dinge.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat