• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 全面剖析VB.NET(3)

    發表于:2007-05-25來源:作者:點擊數: 標簽:VB.NET完善剖析對象面向
    三、完善的面向對象支持 VB .NET提供了完善的面向對象編程支持,是一種真正的OO語言。 完善的面向對象支持應該包括封裝(Encapsulation),繼承(Inheritance)和多態性(Polymorphism)。當前的 VB 6已經部分地實現了這些支持,但仍因某些地方未能符合標準
    三、完善的面向對象支持
    VB.NET提供了完善的面向對象編程支持,是一種真正的OO語言。

     

    完善的面向對象支持應該包括封裝(Encapsulation),繼承(Inheritance)和多態性(Polymorphism)。當前的VB6已經部分地實現了這些支持,但仍因某些地方未能符合標準而受到責難。

    封裝是指對象只顯露公用的方法和屬性。VB6已經提供了健壯的封裝支持,具體通過Public和Private關鍵詞實現,這兩個關鍵詞既可以用于方法,也可以用于屬性。VB.NET進一步完善了VB6的封裝支持,增加了一個Protected關鍵詞。

    多態性即為“多種形態”,VB從4.0開始已經提供多態性支持,它在VB.NET中沒有什么變化。然而,由于VB.NET中類支持兩種類型的繼承——接口繼承和實現繼承,多態性將有更廣泛的用途。

    VB6已經支持一種稱為接口繼承(interface inheritance)的繼承形式,VB.NET支持實現繼承(implementation inheritance)完善了繼承機制。過去,我們用VB的接口繼承模擬實現對象繼承,但現在不必再采用這種模擬技術。正如其他面向對象的語言,在VB.NET中我們可以覆蓋基類的方法和屬性,也可以借助多態性創建出健壯的、可升級的組件。例如,假設有一個從基類Crane繼承的ForkLift類,利用下面的代碼可以覆蓋基類中Lift方法的默認實現:


    Public Class ForkLift
    Inherits Crane

    Overrides Sub Lift(ByRef _
    Height As Double)
    Height = Height + 10
    End Sub
    End Class

     


    VB.NET不僅允許覆蓋方法或屬性,而且還支持方法重載(Overload)。重載是一種定義具有相同名字、不同數據類型的方法或者屬性的能力。例如,假設有一個對不同數據類型的數組進行排序的組件,我們無需為它定義多個排序方法的名字(每種數據類型一個方法名字);相反,我們可以重載單個方法名字:


    Overloads Sub SortArray(ByRef _
    aValues()As String)
    ...
    Overloads Sub SortArray(ByRef _
    aValues() As Integer)
    ...
    Overloads Sub SortArray(ByRef _
    aValues() As Object)


    VB.NET中,窗體以類模塊形式出現。它意味著類本身包含了所有構造窗體所必需的代碼。你可能會奇怪為什么VB.NET中會看到這些代碼而以前不行,事實上這個變化帶來了許多強大的新功能,比如繼承這些窗體的能力。Microsoft稱這種技術為“可視化繼承”(Visual Inheritance)。假設我們為大多數對話窗口設計了一個標準的格式,比如窗體某一邊有一列按鈕、某個角上有一個LOGO圖標,可視化繼承使得我們能夠設計一個窗體模板(類),需要時只需從這個基類繼承就可以得到新的對話窗口。


    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>