44 votes

Comment appelez-vous cela quand une interface "hérite" d'une autre?

Si j'ai classe B : A {}

Je dis que "la Classe B hérité de la classe A ou de classe B dérive de la classe A".

Cependant, si j'ai plutôt:

  class B : ISomeInterface   {}

il est faux de dire "B hérite de ISomeInterface" - le terme exact est-à-dire "B implémente ISomeInterface".

Mais, dire que j'ai

  interface ISomeInterface : ISomeOtherInterface   {}

Maintenant, c'est encore faux de dire "hérite", mais maintenant c'est tout aussi faux de dire "implémente" depuis ISomeInterface ne pas mettre en œuvre quoi que ce soit.

Alors, comment appelez-vous cette relation?

60voto

Jon Skeet Points 692016

Personnellement, je dis "s'étend" et j'ai pensé que le C# spec utilise ce mot en tant que bien quelque part (je ne peux pas le trouver maintenant, malheureusement), mais je me souviens d'Eric Lippert en disant qu'il n'était pas vif sur elle, et je voulais le changer pour la version 4.0.

Je pense qu'il est bon, car il montre que vous êtes prolonger le contrat spécifié par l'interface d'origine.

EDIT: après Avoir regardé le 3.0...

La spécification de tri de côté-les étapes de la question dans la section 13.2. Il parle de membres hérités de l'interfaces de base. Il parle d'une classe de l'extension de l'autre, mais pas les interfaces.

7voto

Alex Martelli Points 330805

Je l'appelle "s'étend".

7voto

dsimcha Points 32831

D'habitude, j'appelle ça l'ingénierie.

6voto

user919426 Points 119

Dans le cas où il est également utile, est venu à travers info sur MSDN qui décrit "l'héritage de l'interface" avec un exemple pratique de l'héritage de l'interface de la structure de la zone de liste déroulante, de Contrôle de zone de liste et zone de texte:

Et avec mention explicite de l'interface de base

Une interface peut hériter de zéro ou de plusieurs interfaces, qui sont appelé explicite interfaces de base de l'interface.

Exemple:

interface IControl
{
   void Paint();
}
interface ITextBox: IControl
{
   void SetText(string text);
}
interface IListBox: IControl
{
   void SetItems(string[] items);
}
interface IComboBox: ITextBox, IListBox {}

Source:

http://msdn.microsoft.com/en-us/library/aa664578%28VS.71%29.aspx

2voto

TheFogger Points 1156

Pourquoi aurait-il tort de dire InterfaceB "hérite" ou "dérive de" InterfaceA? "Implements" serait une erreur, car InterfaceB ne fournit pas d'implémentation. Sémantiquement, dériver des interfaces est très similaire à dériver des classes. C ++, par exemple, ne fait pas de distinction entre les interfaces et les classes.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X