熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

VB.NET的新的面向對象能力

2013-11-13 10:19:43  來源: .NET編程 

  面向對象的編程在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
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.