2010-10-27 10 views
8

Ho una classe che eredita da due interfacce diverse. Entrambe le interfacce dichiarano un metodo con lo stesso nome. Come posso fornire un'implementazione diversa per ogni interfaccia?Più interfacce con gli stessi nomi di metodo

In C#, la risposta è lì, ma non funziona in java: Inheritance from multiple interfaces with the same method name

ho pensato di fornire un'implementazione di unione che utilizza confronto tipo, ma è una specie di brutto.

Grazie

EDIT: chiusi, la mia domanda era un duplicato di quanto segue, grazie per le risposte! Java - Method name collision in interface implementation

+2

Questo è esattamente il motivo per cui mi piace Java: niente brutti scherzi e casi angolari. Non c'è proprio niente che tu possa fare, ho paura. –

risposta

3

Non è possibile. Le interfacce descrivono il comportamento, ma non lo implementano. Pertanto, se si implementa un metodo, non è possibile stabilire da quale interfaccia si sta implementando.

0

No, non esiste alcuna funzione equivalente in Java.

E non puoi farlo da solo, perché all'interno del metodo, non hai modo di dire se il codice chiamante fa riferimento all'oggetto come InterfaceA o InterfaceB. Anche se tu potessi, penso che sarebbe una cattiva idea.

Problemi correlati