| |
6.15.1.Polymorphic Behaviour |
|
Class ID
Public Number As String
Public Sub New(ByVal Number As String)
Me.Number = Number
End Sub
Public Overridable Sub Dial()
Console.WriteLine("Dialing: " & Number)
End Sub
End Class
Class Phone
Inherits ID
Public Sub New(ByVal Number As String)
MyBase.New(Number)
End Sub
Public Overrides Sub Dial()
Console.WriteLine("Beep, touch-tone phone calling: " & Number)
End Sub
End Class
Class CreditCardID
Inherits ID
Public Sub New(ByVal Number As String)
MyBase.New(Number)
End Sub
Public Overrides Sub Dial()
Console.WriteLine("Rotary dialing: " & Number)
End Sub
End Class
Module Module1
Sub Main()
Dim card As New CreditCardID("555-1212")
Dim phone As New Phone("800-555-1212")
Dim PolyID As ID
Console.WriteLine("Using standard objects")
card.Dial()
phone.Dial()
Console.WriteLine("Using polymorphic phone")
PolyID = card
PolyID.Dial()
PolyID = phone
PolyID.Dial()
End Sub
End Module
|
|
Using standard objects
Rotary dialing: 555-1212
Beep, touch-tone phone calling: 800-555-1212
Using polymorphic phone
Rotary dialing: 555-1212
Beep, touch-tone phone calling: 800-555-1212 |
|