Einzelnen Beitrag anzeigen

Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Method-Resolution Clause bei Interface-Vererbung

  Alt 15. Aug 2019, 11:20
Delphi-Version: 10 Seattle
Ich möchte dass eine Klasse zwei Interfaces implementiert, und ein Interface ist abgeleitet vom ersten und "verdeckt" eine Methode.

Sieht so aus:
Delphi-Quellcode:
type
   IMyInterface = interface
   ['{521683FE-4DF8-43E5-8575-420FA539CA0A}']
      function getNumber(): Integer;
   end;

   IMyInterfaceEx = interface(IMyInterface)
   ['{06555A86-3DCE-4DC0-84EE-3419B7164F5C}']
      function getNumber(): Single;
   end;

   TMyObject = class(
      TInterfacedObject,
      IMyInterface,
      IMyInterfaceEx
   )
      function IMyInterface.getNumber = IMyInterface_getNumber;
      function IMyInterface_getNumber(): Integer;

      function IMyInterfaceEx_getNumber(): Single;
      function IMyInterfaceEx.getNumber = IMyInterfaceEx_getNumber;
   end;
Ich bekomme in der Zeile TMyObject = class leider folgenden Fehler:
Code:
[dcc32 Fehler] Project8.dpr(22): E2291 Implementierung der Interface-Methode IMyInterface.getNumber fehlt
Mache ich was falsch oder will der Compiler einfach nicht? Wenn ja, warum will er nicht?


Link: Doku -> Implementing Interfaces -> Method Resolution clause
  Mit Zitat antworten Zitat