偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

淺談VB.NET新的面向?qū)ο竽芰?/h1>

開發(fā) 后端
面向?qū)ο蟮木幊淘赩B4.0以后的版本已經(jīng)使用。不幸的是,一些面向?qū)ο蟮奶攸c比如說繼承、方法重載、方法覆蓋等并沒有實現(xiàn)。本文將簡單談?wù)刅B.NET新的面向?qū)ο竽芰Α?/div>

VB.NET中,VB語言成為了完整的OO語言。一般說來,OO的編程語言支持四個主要的特點:

◆Abstraction抽象

◆Encapsulation封裝

◆Polymorphism多態(tài)

◆Inheritance繼承

讓我們概括的了解一下VB.NET的OO特點:

抽象:

VB從VB4開始支持抽象。面向?qū)ο蟮牡谝徊绞怯嘘P(guān)實體的問題。在這里,提取對象必要信息的過程我們稱為數(shù)據(jù)抽象。

封裝:

封裝允許我們隱藏類內(nèi)部的完成細(xì)節(jié)。將數(shù)據(jù)和功能綁定到一起被稱為封裝。這是界面和實現(xiàn)分離的概念。封裝也在VB4后實現(xiàn)。

多態(tài):

多態(tài)也在VB4中實現(xiàn)。多態(tài)是面向?qū)ο笙到y(tǒng)中允許我們有多個不同的功能用同樣名字的特性。功能的不同之處在于傳遞給它們的參數(shù)不同。事實上,VB通過兩種方式支持多態(tài)

1、通過后期綁定

2、通過多界面的執(zhí)行

繼承:

.NET平臺的一個大的提高就是使用繼承的能力。VB5引入“interface inheritance”使VB開發(fā)者能夠在一定程度上擴展已有對象。但是只能訪問接口而不是底層的執(zhí)行。

繼承就是一個類能夠得到一個現(xiàn)有的類的所有接口和行為。這樣一個類被稱為子類。

當(dāng)我們構(gòu)造一個新類,它繼承已有類的接口和行為,我們就創(chuàng)建了一個類的子類。

舉一個VB5或VB6的例子,你可以創(chuàng)建一個"Employee",它有一些向姓名,地址等的屬性。如果你想創(chuàng)建一個象 “Worker”,“ Officer”的新類或者別的什么,你不能簡單的擴展已有的Employee類。作為替代,你可以選擇復(fù)制代碼到新的對象,或者使用委派技術(shù),在VB.NET中我們擁有完全的繼承。你可以繼承Employee類,包括所有的正確代碼包括效驗、讀取、存儲。你可以為每一個Employee添加單獨的特點。如果你需要改變標(biāo)準(zhǔn)的行為,你也可以覆蓋、重載或隱藏基類的方法和屬性。

覆蓋:

使用同樣的名字替換基類的方法或?qū)傩浴?/P>

重載:

添加新的不同參數(shù)的實現(xiàn)方法。

隱藏:

替換基類中同樣名字的屬性。

繼承也適用于象forms和controls之類的虛類。這可以使VB.NET創(chuàng)建一個基本的Form,包含corporate logos, standard menus, help systems等,然后繼承它們,創(chuàng)建一個特定的Form,擁有與其他Form一樣的外觀和感覺。

Option Strict On Imports System.Windows.Forms Public Class Employee Protected Count
As Int32 '' available to descendants but not public Public Overridable Sub funct1 ()
Count += 1 MessageBox.Show ("Employee funct1: " & Count.ToString, "Employee.funct1",
MessageBoxButtons.OK) End Sub Public Overridable Sub funct2() Count += 1 MessageBox.Show
("Employee funct2: " & Count.ToString, "Employee.funct2", MessageBoxButtons.OK) End Sub End
Class Public Class Officer Inherits Employee Public Overrides Sub funct2 () Count += 1
MessageBox.Show ("Officer: " & Count.ToString, "Officer.funct2", MessageBoxButtons.OK)
End Sub Public Sub special () ''The function only for Officer. Count += 1 MessageBox.Show
("Officer''s special: " & Count.ToString, "Officer.special",  MessageBoxButtons.OK)  End
Sub End Class Module Module1 Sub Main() Dim arun As officer arun = New officer()
officer.funct2 '' will call the method defined in Officer officer.funct1 '' will
call the method defined in Employee End Sub End Module

防止繼承:

我們創(chuàng)建的類默認(rèn)的可以被作為基類使用。有時我想創(chuàng)建一個類,但是不能被繼承。

我們可以在類的聲明時添加“NotInheritable”關(guān)鍵字:

Public NotInheritable Class arungg …… End Class 

當(dāng)使用這個類時,沒有別的代碼可以使用Inherits關(guān)鍵字創(chuàng)建一個我們類的子類?!?

結(jié)論:

在VB.NET中,VB語言終于完整的轉(zhuǎn)變?yōu)閺氐椎腛O語言。我們現(xiàn)在有完整的inheritance,以及其他的特性。VB.NET不止是提供給我們完整的面向?qū)ο蟮奶匦?,也改變我們以往使用VB6的一些方法。

【編輯推薦】

  1. 淺談VB.NET中的跨進程消息鉤子
  2. VB.NET中的動態(tài)代碼生成技巧
  3. C#和VB.NET類型相關(guān)知識匯總向
  4. VB.NET中有用的通用對象列表
  5. VB.NET和C#逐層橫向?qū)Ρ?
責(zé)任編輯:彭凡 來源: IT168
相關(guān)推薦

2010-01-13 11:18:24

VB.NET面向?qū)ο?/a>

2009-10-13 17:03:55

VB.NET面向?qū)ο?/a>

2009-11-02 16:22:16

VB.NET面向?qū)ο?/a>

2009-10-14 12:51:41

VB.NET Data

2009-10-13 14:19:03

VB.NET面向?qū)ο缶?/a>

2009-10-13 11:28:39

VB.NET面向?qū)ο缶?/a>

2009-10-20 09:39:04

VB.NET Butt

2009-10-28 10:31:23

VB.NET Impl

2009-10-13 11:22:46

VB.NET調(diào)用Web

2009-10-12 13:32:58

VB.NET線程構(gòu)造器

2009-10-16 10:14:26

VB.NET使用Fil

2009-10-14 13:21:46

VB.NET Acco

2009-10-09 15:59:41

VB.NET對象

2010-01-22 15:56:03

VB.NET獲取當(dāng)前U

2009-11-04 13:12:33

VB.NET面向?qū)ο缶?/a>

2009-11-03 13:54:55

VB.NET繼承

2009-10-19 11:28:42

VB.NET語言.NET開發(fā)語言

2010-01-22 13:28:13

VB.NET對象克隆

2009-10-23 14:06:07

VB.NET類對象

2009-10-12 16:39:59

OracleTransVB.NET使用
點贊
收藏

51CTO技術(shù)棧公眾號