Private Sub Animal_Move(ByVal Distance As Double)
'(跳起多少码的代码,略。)
Debug.Print "Tyrannosaur moved"
End Sub
Private Sub Animal_Bite(ByVal What As Object)
' (拿起一磅肉的代码,略。)
Debug.Print "Tyrannosaur bit a " & TypeName(What)
End Sub
练习 Tyrannosaur 和 Flea
将下列代码添加到“Form1”的 Load 事件中:
Private Sub Form_Load()
Dim fl As Flea
Dim ty As Tyrannosaur
Dim anim As Animal
Set fl = New Flea
Set ty = New Tyrannosaur
'首先看一下 Flea。
Set anim = fl
Call anim.Bite(ty) 'Flea 叮咬 dinosaur。
'现在轮到 Tyrannosaur。
Set anim = ty
Call anim.Bite(fl) 'Dinosaur 咬 flea。
End Sub
Public Function Move(ByVal Distance As Double) _
As Double
End Function
在 Tyrannosaur 类中实现该方法时,把返回值赋给过程名,这跟处理任何其它 Function 过程一样:
Private Function Animal_Move(ByVal Distance _
As Double) As Double
Dim dblDistanceMoved As Double
'计算能弹跳多远(基于对年龄、健康状态和障碍物的
'考虑)的代码,略。
'该示例假设已经将结果放置到变量 dblDistanceMoved 中。
Debug.Print "Tyrannosaur moved"; dblDistanceMoved
Animal_Move = dblDistanceMoved
End Function