Einzelnen Beitrag anzeigen

Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Polymorphie und Interfaces in Delphi

  Alt 3. Jun 2014, 10:54
Delphi-Version: XE4
Hallo,

Mir ist gerade etwas aufgefallen. Angenommen wir haben 2 Interfaces die voneinander erben

Delphi-Quellcode:
IBaseInterface = interface;
IExtendedInterface = interface(IBaseInterface);
und eine Klasse die IExtendedInterface implementiert:

TKlasse = class(TInterfacedObject, IExtendedInterface);
Nun gibt es folgende Methode:

procedure Irgendwas(Base: IBaseInterface);
und der Aufruf:

Delphi-Quellcode:
var obj: TKlasse;
begin
  // ...
  Irgendwas(obj); // Inkompatible Typen: 'IBaseInterface' und 'TKlasse'
end;
Hab ich was verpasst oder sollte das nicht prinzipiell funktionieren?
Wenn ich TKlasse explizit zusätzlich IBaseInterface implementieren lasse (was ja eigentlich unnötig ist) dann funktionierts.

Hat das einen Grund (bin ich blöd?) oder ist Delphi blöd?
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat