Using the Flyable
example as a starting point, we can add a second interface, Swimmable
, with the following code:
Sub Swim()
' No code
End Sub
The Duck
object can Implement
both flying and swimming:
Implements Flyable
Implements Swimmable
Public Sub Flyable_Fly()
Debug.Print "Flying With Wings!"
End Sub
Public Function Flyable_GetAltitude() As Long
Flyable_GetAltitude = 30
End Function
Public Sub Swimmable_Swim()
Debug.Print "Floating on the water"
End Sub
A Fish
class can implement Swimmable
, too:
Implements Swimmable
Public Sub Swimmable_Swim()
Debug.Print "Swimming under the water"
End Sub
Now, we can see that the Duck
object can be passed to a Sub as a Flyable
on one hand, and a Swimmable
on the other:
Sub InterfaceTest()
Dim MyDuck As New Duck
Dim MyAirplane As New Airplane
Dim MyFish As New Fish
Debug.Print "Fly Check..."
FlyAndCheckAltitude MyDuck
FlyAndCheckAltitude MyAirplane
Debug.Print "Swim Check..."
TrySwimming MyDuck
TrySwimming MyFish
End Sub
Public Sub FlyAndCheckAltitude(F As Flyable)
F.Fly
Debug.Print F.GetAltitude
End Sub
Public Sub TrySwimming(S As Swimmable)
S.Swim
End Sub
The output of this code is:
Fly Check...
Flying With Wings!
30
Flying With Jet Engines!
10000
Swim Check...
Floating on the water
Swimming under the water