Interface-Based polimorfismo
As interfaces oferecem outra maneira, que você pode realizar polimorfismo em Visual Basic. Interfaces descrevem propriedades e métodos, como classes, mas, diferentemente das classes, interfaces não podem fornecer qualquer implementação.Várias interfaces tem a vantagem de permitir que sistemas de componentes de software evoluam sem quebra código existente.
Para obter o polimorfismo com interfaces, implementar uma interface de formas diferentes em várias classes.Aplicativos cliente podem usar as antigas ou novas implementações da mesma maneira.A vantagem baseada em interface polimorfismo é que você não precisa re-compilar aplicativos existentes do cliente para obtê-los para trabalhar com novas implementações de interface.
O exemplo a seguir define uma interface denominada Shape2 que é implementado em uma classe chamada RightTriangleClass2 e RectangleClass2. Um procedimento denominado ProcessShape2 chamadas a CalculateArea método de instâncias 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
Consulte também
Tarefas
Como: Criar e implementar interfaces