veo cosas como esta mucho:Vuelva a implementar una interfaz que otra interfaz ya se hereda
interface A { ... }
interface B : A { ... }
class C : B, A { ...}
¿Por qué C especificar que implementa la interfaz A, B, cuando ya se hereda A? ¿Tiene alguna diferencia semántica o es solo una cuestión de estilo?
(Uno de los muchos ejemplos es List<T>
implementar IList<T>
y ICollection<T>
, mientras IList<T>
deriva también de ICollection<T>
).
Actualización: Gracias por confirmar mi suposición de que no hay ninguna diferencia semántica.
que han llegado con una situación relacionada donde qué hacer una diferencia para nombrar explícitamente una interfaz que ya está en el árbol de herencia:
Si B
eran una clase, C
haría solamente (re) implementar miembros de interfaz desde A
si nombra A
explícitamente después del ':
'.
[EDITAR] Cambié la redacción de la pregunta para evitar confusiones con los miembros de la interfaz implementados explícitamente, que restringen el uso del miembro a los casos en que el objeto se convierte como la interfaz.
Creo que es para una mejor legibilidad .. sin tener que trabajar las células del cerebro que atraviesan la jerarquía de herencia de interfaz. – Gishu