Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Aggiornamento: novembre 2007
Un'interfaccia, secondo la definizione utilizzata in Visual Basic, è un tipo che definisce un elenco di membri pubblici. Non è possibile creare un'istanza o un'implementazione di un tipo Interface.
Interfacce e classi
L'interfaccia di una classe è un elenco dei membri pubblici della classe stessa. In Visual Basic 2008 l'istruzione Interface consente di dichiarare un tipo che definisce un elenco di membri pubblici. Quando una classe contiene l'istruzione Implements in essa vengono implementati tutti i membri dell'interfaccia. Ciò è diverso dall'ereditarietà dell'implementazione ottenuta mediante la parola chiave Inherits. Nell'ereditarietà dell'implementazione i membri vengono ereditati dalla classe base e non devono essere implementati nella classe derivata.
In .NET Framework le interfacce sono spesso utilizzate nelle classi per supportare alcuni servizi dell'applicazione. In .NET Framework, ad esempio, se una classe implementa l'interfaccia System.IComparable, in fase di esecuzione le istanze della classe saranno ordinate se queste sono contenute in una classe ArrayList.
Per ulteriori informazioni sull'utilizzo delle interfacce in Visual Basic 2008, vedere Interfacce in Visual Basic.
Visual Basic 6.0
In Visual Basic 6.0 tutte le classi possono avere funzione di interfaccia. Qualsiasi classe può implementare l'interfaccia di un'altra classe mediante l'Istruzione Implements, come mostrato di seguito.
' Contents of class BaseClass
Public Sub BaseMethod()
End Sub
' Contents of class DerivedClass
Implements BaseClass
Private Sub BaseClass_BaseMethod()
End Sub
Anche se non è obbligatorio, alcuni membri della classe possono contenere del codice.
Visual Basic 2008
In Visual Basic 2008 vi è una netta distinzione fra classi e interfacce. Le prime sono dichiarate con l'istruzione Class mentre le seconde sono dichiarate con l'istruzione Interface. Una classe non può avere funzione di interfaccia. Per avere funzione di interfaccia, il tipo deve essere dichiarato con l'istruzione Interface. I membri di un'interfaccia non sono implementati. Anzi, nella sintassi di definizione di un'interfaccia non sarà consentito l'utilizzo di righe di codice quali End Sub. I membri di un'interfaccia sono implementati nella classe in cui si dichiara l'interfaccia mediante l'istruzione Implements:
Interface Printable
Sub Print()
Property Mode() As Integer
End Interface
Public Class Tree
Implements Printable
Private modeValue As Integer
Public Property Mode() As Integer Implements Printable.Mode
Get
Return modeValue
End Get
Set(ByVal Value As Integer)
modeValue = Value
End Set
End Property
Public Sub Print() Implements Printable.Print
' Add code to print a tree.
End Sub
End Class
Suggerimenti per l'aggiornamento
L'unico modo possibile per implementare l'ereditarietà in Visual Basic 6.0 è utilizzare l'istruzione Implements e una classe base. Nelle versioni più recenti di Visual Basic vi sono due tipi di ereditarietà: ereditarietà dell'implementazione ed ereditarietà di interfaccia. La scelta del tipo di ereditarietà dipende dall'applicazione. Segue un elenco di possibili punti da considerare:
L'ereditarietà dell'implementazione, ottenuta mediante l'Istruzione Inherits, consente di creare nuove classi senza dover scrivere altro codice. L'aggiunta di codice diventa necessaria solo quando si desidera modificare il funzionamento della classe base. Nell'ereditarietà di interfaccia, invece, occorre scrivere del codice aggiuntivo per ogni membro della classe base.
Le interfacce possono essere utilizzate quando si desidera ereditare da più di una classe. In Visual Basic 2008 è consentito ereditare solo da una classe, anche se una classe può implementare più interfacce.
In .NET Framework sono definite diverse interfacce che semplificano l'esecuzione delle più comuni attività di programmazione. Alcuni esempi di interfaccia sono IComparable, ISerializable e IFormattable.
Per molte delle interfacce di .NET Framework, in .NET Framework è prevista anche una classe che implementa l'interfaccia. Ad esempio la classe Component implementa l'interfacciaIComponent. Ereditando dalla classe Component mediante l'istruzione Istruzione Inherits, una classe acquisisce tutte le funzionalità dell'interfaccia IComponent senza che sia necessario scrivere ulteriore codice.
Vedere anche
Riferimenti
Istruzione Interface (Visual Basic)