In Visual Basic .NET, l'ereditarietà è implementata tramite la parola chiave Inherits, che consente di creare nuove classi basate su classi esistenti, ereditando le loro proprietà e metodi. Questo consente di riutilizzare il codice e di estendere la funzionalità senza duplicazione.
Quando si utilizza l'ereditarietà, è importante:
Protected o utilizzare Overridable/Overrides per i metodi che devono essere sovrascritti.MustInherit per le classi astratte e NotInheritable per vietare l'ereditarietà.Esempio:
' Classe astratta Public MustInherit Class Animal Public MustOverride Sub MakeSound() End Class ' Classe derivata Public Class Dog Inherits Animal Public Overrides Sub MakeSound() Console.WriteLine("Woof!") End Sub End Class
Caratteristiche:
Implements.Un classe può ereditare simultaneamente più classi in Visual Basic .NET?
Risposta errata: Sì, è possibile tramite una virgola (o tramite interfacce).
Risposta corretta: No, in Visual Basic .NET è supportata solo l'ereditarietà singola delle classi, ma è possibile implementare più interfacce.
Esempio:
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 ' Implementazione End Sub Public Sub Swim() Implements ISwimmable.Swim ' Implementazione End Sub End Class
Storia
In un grande sistema contabile, un ingegnere ha tentato di ereditare due classi (ad esempio,EmployeeeManager). Il codice non si compilava, il che ha ritardato il progetto di diversi giorni: è stato necessario riprogettare lo schema e separare la funzionalità in interfacce.
Storia
Un giovane sviluppatore ha dimenticato di contrassegnare i metodi della classe base comeOverridable, ma ha cercato di sovrascriverli nel derivato. Si sono verificati errori di compilazione, il che ha fatto sì che il team impiegasse tempo per il debug.
Storia
In un progetto, una proprietà nella classe base è stata accidentalmente lasciata pubblica, e veniva modificata in modo errato dai derivati, causando violazioni dell'incapsulamento e la comparsa di bug hard-to-find.