物件導向程式設計入門(Object-Oriented Programming,OOP) for Visual Basic(四)--繼承Inheritance

繼承Inheritance

  • 繼承的原始類別稱「基礎Class」或「父Class」,繼承基礎Class的新Class稱「衍生Class」或「子Class」。
  • 衍生Class會繼承基礎Class的「Public成員」,然後依需求直接使用或是改寫與擴充基礎Class的功能。
  • 在.NET Framework繼承關係只會向下傳遞,而且.NET Framework不支援多重繼承,每一個Class只能繼承一個Class

繼承範例

我先新增一個Animals.vb類別檔,此Class為基礎Class:
Animals.vb
Public Class Animals

  '定義動物相關特性
End Class

再新增兩個Cat.vb類別檔及Dog.vb類別檔,然後「繼承Animals.vb類別」:
Cat.vb
Public Class Cat
    Inherits Animals

    'Do Something
End Class

Dog.vb
Public Class Dog
    Inherits Animals

    'Do Something
End Class

在Class設計過程,你如果程式有著上下關係,而且上(基礎Class)可以不斷給下(衍生Class)重覆利用,這樣的模式就非常適合使用繼承的方式來設計Class。

限制繼承

在Class繼承關係中,雖然只能衍生一代的繼承關係,但對「深度」並沒有限制,即繼承關係下的「衍生Class」也可以當其他Class的基礎Class,進而形成一個Tree架構。如果想限制此Class不可繼承,必須使用NotInheritable關鍵字宣告

限制繼承範例

新增一個Pig.vb類別檔,宣告為不可繼承。注意第一行,不是使用Public Class Pig,而是NotInheritable Class Pig。
Pig.vb
NotInheritable Class Pig
    Inherits Animals

    'Do Something ...
End Class 

這樣,你在其他一個Class,例如Pig3(三隻小豬)下Inherits關鍵字時,清單中就不會出現Pig Class,就算是手動打上去,也是會產生錯誤。

沒有留言:

張貼留言

感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「分享」它,我會很高興的。