2011-10-24 2 views
2

Je suis un peu confus sur les interfaces dans Delphi, donc je vous pose une question à ce sujet. Une interface peut être 'associée' à une classe abstraite (elle n'implémente pas les méthodes déclarées). Toutes les méthodes déclarées dessus sont implémentées dans la classe/classes implémentant l'interface. Donc, pourquoi est-il alors permis d'avoir la directive overload sur la déclaration de méthode d'une interface?Delphi - Directive sur les interfaces et les surcharges

type 
IFoo = interface 
    function Test : String; overload; 
end; 

Le compilateur est silencieux sur ce point.

+0

-1. Je ne comprends pas ce que vos deux premières déclarations sur les interfaces ont à faire avec votre question. Oui, les interfaces sont associées aux classes, et oui, la classe implémente les méthodes de l'interface. Pourquoi pensez-vous que l'un ou l'autre est pertinent pour l'utilisation de «surcharge» sur une méthode d'interface? S'il vous plaît clarifier votre question. –

+0

En outre, que voulez-vous dire par "opérateurs de visibilité"? –

+0

J'espère que la question est plus claire maintenant. – RBA

Répondre

9
  1. overloaded permet d'avoir quelques méthodes nommées, mais avec des jeux de paramètres différents, dans une seule classe/interface. L'interface a la méthode Test. Avec cette seule méthode, il n'y a pas besoin de overloaded. Mais vous pouvez introduire, si vous avez besoin, des méthodes Test supplémentaires avec des jeux de paramètres différents.
  2. Vous êtes probablement penser à override directive ...
+0

La directive override ne peut pas être placée dans une déclaration de méthode sur une interface. +1 pour la réponse – RBA

+0

oui, car il n'y a rien à remplacer :) –

Questions connexes