Polymorphisme d'interface
Mise à jour : novembre 2007
Les interfaces vous permettent également d'accomplir le polymorphisme dans Visual Basic. Elles décrivent des propriétés et des méthodes, telles que des classes, mais contrairement aux classes, elles ne peuvent pas assurer d'implémentation. Les interfaces multiples permettent l'évolution des systèmes de composants logiciels sans endommager le code existant.
Pour accomplir le polymorphisme avec les interfaces, vous devez implémenter une interface de diverses manières dans plusieurs classes. Les applications clientes peuvent employer les implémentations nouvelles ou anciennes exactement de la même façon. L'avantage du polymorphisme d'interface est que vous n'avez pas besoin de recompiler les applications clientes existantes pour les utiliser avec les nouvelles implémentations d'interface.
L'exemple suivant définit une interface intitulée Shape2 implémentée dans une classe nommée RightTriangleClass2 et RectangleClass2. Une procédure nommée ProcessShape2 appelle la méthode CalculateArea des instances de RightTriangleClass2 ou RectangleClass2 :
Sub TestInterface()
Dim RectangleObject2 As New RectangleClass2
Dim RightTriangleObject2 As New RightTriangleClass2
ProcessShape2(RightTriangleObject2, 3, 14)
ProcessShape2(RectangleObject2, 3, 5)
End Sub
Sub ProcessShape2(ByVal Shape2 As Shape2, ByVal X As Double, _
ByVal Y As Double)
MsgBox("The area of the object is " _
& Shape2.CalculateArea(X, Y))
End Sub
Public Interface Shape2
Function CalculateArea(ByVal X As Double, ByVal Y As Double) As Double
End Interface
Public Class RightTriangleClass2
Implements Shape2
Function CalculateArea(ByVal X As Double, _
ByVal Y As Double) As Double Implements Shape2.CalculateArea
' Calculate the area of a right triangle.
Return 0.5 * (X * Y)
End Function
End Class
Public Class RectangleClass2
Implements Shape2
Function CalculateArea(ByVal X As Double, _
ByVal Y As Double) As Double Implements Shape2.CalculateArea
' Calculate the area of a rectangle.
Return X * Y
End Function
End Class
Voir aussi
Tâches
Comment : créer et implémenter des interfaces