面向對象的編程在VB以後的版本已經使用不幸的是一些面向對象的特點比如說繼承方法重載方法覆蓋等並沒有實現
在VBNET中VB語言成為了完整的OO語言一般說來OO的編程語言支持四個主要的特點
Abstraction抽象
Encapsulation封裝
Polymorphism多態
Inheritance繼承
讓我們概括的了解一下VBNET的OO特點
抽象
VB從VB開始支持抽象面向對象的第一步是有關實體的問題在這裡提取對象必要信息的過程我們稱為數據抽象
封裝
封裝允許我們隱藏類內部的完成細節將數據和功能綁定到一起被稱為封裝這是界面和實現分離的概念封裝也在VB後實現
多態
多態也在VB中實現多態是面向對象系統中允許我們有多個不同的功能用同樣名字的特性功能的不同之處在於傳遞給它們的參數不同事實上VB通過兩種方式支持多態
通過後期綁定
通過多界面的執行
繼承
NET平台的一個大的提高就是使用繼承的能力VB引入interface inheritance使VB開發者能夠在一定程度上擴展已有對象但是只能訪問接口而不是底層的執行
繼承就是一個類能夠得到一個現有的類的所有接口和行為這樣一個類被稱為子類當我們構造一個新類它繼承已有類的接口和行為我們就創建了一個類的子類
舉一個VB或VB的例子你可以創建一個Employee它有一些向姓名地址等的屬性如果你想創建一個象 Worker Officer的新類或者別的什麼你不能簡單的擴展已有的Employee類作為替代你可以選擇復制代碼到新的對象或者使用委派技術在VBNET中我們擁有完全的繼承你可以繼承Employee類包括所有的正確代碼包括效驗讀取存儲你可以為每一個Employee添加單獨的特點如果你需要改變標准的行為你也可以覆蓋重載或隱藏基類的方法和屬性
覆蓋
使用同樣的名字替換基類的方法或屬性
重載
添加新的不同參數的實現方法
隱藏
替換基類中同樣名字的屬性
繼承也適用於象forms和controls之類的虛類這可以使VBNET創建一個基本的Form包含corporate logos standard menus help systems等然後繼承它們創建一個特定的Form擁有與其他Form一樣的外觀和感覺
Option Strict On
Imports SystemWindowsForms
Public Class Employee
Protected Count As Int available to descendants but not public
Public Overridable Sub funct ()
Count +=
MessageBoxShow (Employee funct: & CountToString Employeefunct MessageBoxButtonsOK)
End Sub
Public Overridable Sub funct()
Count +=
MessageBoxShow (Employee funct: & CountToString Employeefunct MessageBoxButtonsOK)
End Sub
End Class
Public Class Officer
Inherits Employee
Public Overrides Sub funct ()
Count +=
MessageBoxShow (Officer: & CountToString Officerfunct MessageBoxButtonsOK)
End Sub
Public Sub special () The function only for Officer
Count +=
MessageBoxShow (Officers special: & CountToString Officerspecial MessageBoxButtonsOK)
End Sub
End Class
Module Module
Sub Main()
Dim arun As officer
arun = New officer()
officerfunct will call the method defined in Officer
officerfunct will call the method defined in Employee
End Sub
End Module
防止繼承:
我們創建的類默認的可以被作為基類使用有時我想創建一個類但是不能被繼承我們可以在類的聲明時添加NotInheritable關鍵字
Public NotInheritable Class arungg
……
End Class
當使用這個類時沒有別的代碼可以使用Inherits關鍵字創建一個我們類的子類
結論
在VBNET中VB語言終於完整的轉變為徹底的OO語言我們現在有完整的inheritance以及其他的特性VBNET不止是提供給我們完整的面向對象的特性也改變我們以往使用VB的一些方法
From:http://tw.wingwit.com/Article/program/net/201311/13251.html