Dans Visual Basic .NET, l'héritage est implémenté à l'aide du mot-clé Inherits, permettant de créer de nouvelles classes basées sur des classes existantes, en héritant de leurs propriétés et méthodes. Cela permet de réutiliser du code et d'étendre la fonctionnalité sans duplication.
Lors de l'héritage, il est important de :
Protected ou d'utiliser Overridable/Overrides pour les méthodes devant être redéfinies.MustInherit pour les classes abstraites et NotInheritable pour interdire l'héritage.Exemple :
' Classe abstraite Public MustInherit Class Animal Public MustOverride Sub MakeSound() End Class ' Classe héritable Public Class Dog Inherits Animal Public Overrides Sub MakeSound() Console.WriteLine("Woof!") End Sub End Class
Particularités :
Implements.Un classe peut-elle hériter de plusieurs classes en même temps dans Visual Basic .NET ?
Réponse incorrecte : Oui, c'est possible par la virgule (ou via des interfaces).
Réponse correcte : Non, en Visual Basic .NET, seule l'héritage unique des classes est pris en charge, mais plusieurs interfaces peuvent être implémentées.
Exemple :
Public Interface IRunnable Sub Run() End Interface Public Interface ISwimmable Sub Swim() End Interface Public Class Person Implements IRunnable, ISwimmable Public Sub Run() Implements IRunnable.Run ' Implémentation End Sub Public Sub Swim() Implements ISwimmable.Swim ' Implémentation End Sub End Class
Histoire
Dans un grand système de comptabilité, un ingénieur a essayé d'hériter de deux classes (par exemple,EmployeeetManager). Le code ne compilait pas, ce qui a retardé le projet de plusieurs jours : il a dû retravailler le schéma, décomposer les fonctionnalités en interfaces.
Histoire
Un jeune développeur a oublié de marquer les méthodes de la classe de base commeOverridable, mais a tenté de les redéfinir dans l'héritier. Des erreurs de compilation se produisaient, ce qui a conduit l'équipe à passer du temps à déboguer.
Histoire
Dans un projet, une propriété de la classe de base a été accidentellement laissée publique, et elle a été modifiée incorrectement par les héritiers, ce qui a entraîné une violation de l'encapsulation et l'apparition de bogues difficiles à attraper.