2010-10-27 5 views
8

J'ai une classe qui hérite de deux interfaces différentes. Les deux interfaces déclarent une méthode avec le même nom. Comment puis-je fournir une implémentation différente pour chaque interface?Plusieurs interfaces avec les mêmes noms de méthodes

En C#, la réponse est là, mais il ne fonctionne pas en java: Inheritance from multiple interfaces with the same method name

Je pensais à fournir une implémentation syndicale qui utilise la comparaison de type, mais il est le genre de laid.

Merci

EDIT: fermé, ma question était un double de ce qui suit, je vous remercie pour les réponses! Java - Method name collision in interface implementation

+2

C'est exactement pourquoi j'aime Java: pas de trucs laids et des cas de coin. Je crains que tu ne puisses rien faire. –

Répondre

3

Vous ne pouvez pas. Les interfaces décrivent le comportement, mais elles ne l'implémentent pas. Donc, si vous implémentez une méthode, il n'y a aucun moyen de dire de quelle interface vous l'implémentez.

0

Non, il n'y a pas de fonctionnalité équivalente en Java.

Et vous ne pouvez pas le faire vous-même, car dans la méthode, vous n'avez aucun moyen de savoir si le code appelant fait référence à l'objet comme InterfaceA ou InterfaceB. Même si vous le pouviez, je pense que ce serait une mauvaise idée.

Questions connexes