繼承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,就算是手動打上去,也是會產生錯誤。
沒有留言:
張貼留言
感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「分享」它,我會很高興的。