2010-10-27 14 views
8

Tengo una clase que hereda de dos interfaces diferentes. Ambas interfaces declaran un método con el mismo nombre. ¿Cómo puedo proporcionar una implementación diferente para cada interfaz?Múltiples interfaces con los mismos nombres de método

En C#, la respuesta es no, pero no funciona en Java: Inheritance from multiple interfaces with the same method name

pensé en proporcionar una implementación de unión que utiliza la comparación de tipo pero es un poco feo.

Gracias

EDIT: cerrados, mi pregunta era un duplicado de la siguiente, gracias por las respuestas! Java - Method name collision in interface implementation

+2

Esto es exactamente por lo que me gusta Java: no hay trucos feos y casos de esquina. Simplemente no hay nada que puedas hacer, me temo. –

Respuesta

3

No puede. Las interfaces describen el comportamiento, pero no lo implementan. Entonces, si implementa un método, no hay forma de saber de qué interfaz lo está implementando.

0

No, no hay una función equivalente en Java.

Y no puede hacerlo usted mismo, porque dentro del método, no tiene forma de saber si el código de llamada está haciendo referencia al objeto como InterfaceA o InterfaceB. Incluso si pudieras, creo que sería una mala idea.

Cuestiones relacionadas