vb.net中用承繼完成多態性。本站提示廣大學習愛好者:(vb.net中用承繼完成多態性)文章只能為提供參考,不一定能成為您想要的結果。以下是vb.net中用承繼完成多態性正文
大局部面向對象的順序開發零碎都是經過承繼來完成多態。比方說跳蚤類和狗類都是從植物類承繼過去的。為了突出每一種植物走動的特點,則每一種特定植物類都要重載植物類的"Move"辦法。
多態性的問題是由於用戶可以需求在還不知道是要對哪種特定植物停止處置的時分,就要調用多種從植物類中派生出來的特定的植物類中的"Move"辦法。
在上面的這個TestPolymorphism進程中,用承繼來完成多態性:
MustInherit Public Class Amimal '根本類 MustOverride Public Sub Bite(Byval What As Object) MustOverride Public Sub Move(ByRef Distance As Double) End Class Public Class Flea Inherits Amimal Overrides Sub bite(Byval What As Object) 'Bite something End Sub Overrides Sub Move(ByRef Distance As Double) distance=Distance+1 End Sub End Class Public Class Dog Inherits Animal Overrides Public Sub bite(Byval What As Object) 'Bite something End Sub Overrides Sub Move(ByRef Distance As Double) distance=Distance+100 End Sub End Class Sub TestPolymorphism() Dim aDog As New Dog() Dim aFlea As New Flea() UseAnimal(aFlea) 'Pass a flea object to UseAnimal procedure UseAnimal(aDog) 'Pass a Dog object to UseAnimal procedure End Sub Sub UseAnimal(Byval AnAnimal As Animal) Dim distance As Double=0 'UseAnimal does not care what kind of animal it is using 'The Move method of both the Flea and the Dog are inherited 'from the Animal class and can be used interchangeably. AnAniml.Move(distance) If distance=1 Then MessageBox.Show("The animal moved:"&CStr(distance)&_ "units,so it must be a Flea.") ElseIf distance>1 Then MessageBox.Show("The animal moved:"&CStr(distance)&_ "units,so it must be a Dog.") End IF End Sub