 |
 |
VB.NET提供了完善的面向?qū)ο缶幊讨С郑且环N真正的面向?qū)ο蟮木幊陶Z言。 完善的面向?qū)ο笾С謶?yīng)該包括封裝(Encapsulation),繼承(Inheritance)和多態(tài)性(Polymorphism)。當(dāng)前的VB6已經(jīng)部分地實現(xiàn)了這些支持,但仍因某些地方未能符合標(biāo)準(zhǔn)而受到責(zé)難。 封裝是指對象只顯露公用的方法和屬性。VB6已經(jīng)提供了健壯的封裝支持,具體通過Public和Private關(guān)鍵詞實現(xiàn),這兩個關(guān)鍵詞既可以用于方法,也可以用于屬性。VB.NET進(jìn)一步完善了VB6的封裝支持,增加了一個Protected關(guān)鍵詞。 多態(tài)性即為“多種形態(tài)”,VB從4.0開始已經(jīng)提供多態(tài)性支持,它在VB.NET中沒有什么變化。然而,由于VB.NET中類支持兩種類型的繼承——接口繼承和實現(xiàn)繼承,多態(tài)性將有更廣泛的用途。 VB6已經(jīng)支持一種稱為接口繼承(interface inheritance)的繼承形式,VB.NET支持實現(xiàn)繼承(implementation inheritance)完善了繼承機(jī)制。過去,我們用VB的接口繼承模擬實現(xiàn)對象繼承,但現(xiàn)在不必再采用這種模擬技術(shù)。正如其他面向?qū)ο蟮恼Z言,在VB.NET中我們可以覆蓋基類的方法和屬性,也可以借助多態(tài)性創(chuàng)建出健壯的、可升級的組件。例如,假設(shè)有一個從基類Crane繼承的ForkLift類,利用下面的代碼可以覆蓋基類中Lift方法的默認(rèn)實現(xiàn): Public Class ForkLift Inherits Crane Overrides Sub Lift(ByRef _ Height As Double) Height = Height + 10 End Sub End Class VB.NET不僅允許覆蓋方法或?qū)傩裕疫支持方法重載(Overload)。重載是一種定義具有相同名字、不同數(shù)據(jù)類型的方法或者屬性的能力。例如,假設(shè)有一個對不同數(shù)據(jù)類型的數(shù)組進(jìn)行排序的組件,我們無需為它定義多個排序方法的名字(每種數(shù)據(jù)類型一個方法名字);相反,我們可以重載單個方法名字: Overloads Sub SortArray(ByRef _ aValues()As String) ... Overloads Sub SortArray(ByRef _ aValues() As Integer) ... Overloads Sub SortArray(ByRef _ aValues() As Object) 在VB.NET中,窗體以類模塊形式出現(xiàn)。它意味著類本身包含了所有構(gòu)造窗體所必需的代碼。你可能會奇怪為什么VB.NET中會看到這些代碼而以前不行,事實上這個變化帶來了許多強(qiáng)大的新功能,比如繼承這些窗體的能力。Microsoft稱這種技術(shù)為“可視化繼承”(Visual Inheritance)。假設(shè)我們?yōu)榇蠖鄶?shù)對話窗口設(shè)計了一個標(biāo)準(zhǔn)的格式,比如窗體某一邊有一列按鈕、某個角上有一個LOGO圖標(biāo),可視化繼承使得我們能夠設(shè)計一個窗體模板(類),需要時只需從這個基類繼承就可以得到新的對話窗口。
|
作者:未知 | 文章來源:未知 | 更新時間:2008-1-15 16:40:38
|
|
 |
 |
最新文章 |
|
|
 |