Vue d'ensemble des interfaces
Mise à jour : novembre 2007
Tout comme les classes, les interfaces définissent un ensemble de propriétés, méthodes et événements. Cependant, contrairement aux classes, les interfaces n'assurent pas l'implémentation. Elles sont implémentées par les classes et définies en tant qu'entités distinctes des classes.
Une interface représente un contrat, dans le sens où une classe qui implémente une interface doit implémenter tous les aspects de cette interface exactement telle qu'elle a été définie.
Avec les interfaces, vous pouvez définir les fonctionnalités en tant que petits groupes de membres étroitement liés. Vous pouvez développer des implémentations avancées pour vos interfaces sans endommager le code existant, ce qui limite les problèmes de compatibilité. Vous pouvez également ajouter de nouvelles fonctionnalités à tout moment en développant des interfaces et implémentations supplémentaires.
Même si les implémentations d'interfaces peuvent évoluer, les interfaces elles-mêmes ne peuvent pas être modifiées après publication. En effet, toute modification apportée à une interface publiée risque d'endommager le code existant. Si vous partez du principe qu'une interface est une sorte de contrat, il apparaît clairement que les deux parties liées par ce contrat ont un rôle à jouer. La partie qui publie une interface accepte de ne jamais modifier cette dernière et l'implémenteur accepte de l'implémenter exactement comme elle a été conçue.
Dans les versions antérieures de Visual Basic, vous pouviez consommer des interfaces, mais pas les créer directement. Désormais, vous pouvez définir de vraies interfaces à l'aide de l'instruction Interface et vous pouvez implémenter des interfaces avec une version améliorée du mot clé Implements.
Voir aussi
Tâches
Comment : créer et implémenter des interfaces
Procédure pas à pas : création et implémentation d'interfaces
Concepts
Implements, mot clé et instruction
Exemples d'implémentation d'interface en Visual Basic
Référence
Interface, instruction (Visual Basic)