Qu'est-ce que l'héritage d'interface?
L'héritage d'interface est un mécanisme utilisé dans certains langages informatiques où une classe hérite de fonctions spécifiques. Cette classe particulière doit ensuite fournir les implémentations de ces fonctions pour être complète. Les interfaces n'existent que dans certains langages de programmation orientés objet. Ils peuvent être utilisés pour émuler plusieurs héritages sans permettre à une classe de multiplier l'héritage, car le nombre d'interfaces dont une classe peut hériter n'est généralement pas limité. Outre les méthodes non implémentées, les interfaces peuvent également inclure des constantes publiques.
Dans l'héritage d'interface, l'objet qui hérite des stubs et des constantes de méthode est considéré comme un type d'objet d'interface. Ainsi, si une classe X hérite d'une interface Y, toute instance de la classe X serait également une instance de la classe Y. Cela devient plus compliqué lorsque l'héritage d'interface d'une classe implique plus d'une interface séparée. Pour chaque interface supplémentaire héritée, la classe résultante peut être légitimement utilisée en tant qu'instance de chacune. Si une classe hérite de dix interfaces différentes, les objets de cette classe peuvent être utilisés comme instance de onze objets différents, y compris lui-même.
Un tel héritage complexe n'est pas souvent nécessaire. L'héritage d'interface est utilisé pour s'assurer qu'une classe a un ensemble spécifique de comportements requis, et ces comportements lui permettent d'exécuter une variété de fonctions qu'elle ne pourrait pas autrement effectuer. Un exemple courant de ceci est l'interface ActionListener en Java, qui nécessite qu'une classe implémente une seule méthode spécifique. Une implémentation réussie de cette méthode permet à un utilisateur de contrôler les boutons, les éléments de menu ou tout autre objet window de la classe, le cas échéant. L'héritage d'interface est un moyen relativement simple d'ajouter des fonctionnalités complexes à une classe sans se soucier des problèmes d'héritage les plus complexes.
L'un des principaux avantages de l'utilisation de l'héritage d'interface est qu'il permet d'utiliser des objets spécifiques dans un sens générique. Puisqu'une classe qui implémente une interface est une instance de cette interface, elle peut être utilisée à tout endroit où une instance de cette interface est requise. Par exemple, si la classe A implémente la classe C et que la classe B implémente également la classe C, si une méthode prend en paramètre une instance de la classe C, une instance de la classe A ou une instance de la classe B serait un paramètre acceptable à utiliser. . Les interfaces ne peuvent pas être instanciées par elles-mêmes car elles ne sont pas complètes, il n'y aurait donc jamais d'objet qui soit une simple instance de classe C en tant que paramètre.