日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
關(guān)于VB.NET基類(lèi)繼承、重載、隱藏的總結(jié)歸納

很喜歡用VB.NET開(kāi)發(fā)語(yǔ)言,在網(wǎng)上也經(jīng)常收集,自己也總結(jié)了一點(diǎn)小筆記,在這里共大家參考一下,本文主要對(duì)VB.NET基類(lèi)的繼承,重寫(xiě),重載,隱藏的概念和方法進(jìn)行總結(jié),來(lái)看看吧。

成都創(chuàng)新互聯(lián)公司主營(yíng)大石橋網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,成都APP應(yīng)用開(kāi)發(fā),大石橋h5微信小程序定制開(kāi)發(fā)搭建,大石橋網(wǎng)站營(yíng)銷(xiāo)推廣歡迎大石橋等地區(qū)企業(yè)咨詢(xún)

通過(guò)聲明Inherits關(guān)鍵字,來(lái)標(biāo)識(shí)該類(lèi)的基類(lèi)是誰(shuí)。Inherits 基類(lèi)名

 
 
 
  1. Sub New(s as string)'構(gòu)造,加入變量s 可要求強(qiáng)行賦值  
  2. '初始化  
  3. MyBase.New() '注意:這句話(huà)要放在sub內(nèi)的***句,基類(lèi)帶參數(shù)時(shí)要標(biāo)明  
  4. End Sub  
  5. Protected Overrides Sub Finalize()'析構(gòu)  
  6. '收尾  
  7. MyBase.Finalize()  
  8. End Sub 

在基類(lèi)中用Overridable修飾符來(lái)標(biāo)識(shí)允許基類(lèi)中的屬性或方法在其派生類(lèi)中被重寫(xiě),沒(méi)有標(biāo)識(shí)的其實(shí)就是默認(rèn)為有NotOverridable修飾符來(lái)隱式地標(biāo)識(shí),用于提醒編譯器該屬性或方法不可被重寫(xiě)。

◆重寫(xiě): 在派生類(lèi)中用Overrides重新編寫(xiě)有Overridable標(biāo)識(shí)的基類(lèi)的方法或?qū)傩浴?br />◆重載: Overloads,用同樣的名稱(chēng),用不同的參數(shù)列表來(lái)創(chuàng)建多個(gè)方法和屬性,在調(diào)用時(shí)就可以適應(yīng)不同參數(shù)類(lèi)型的要求。
◆隱藏: 用派生類(lèi)的名稱(chēng)代替基類(lèi)的名稱(chēng),并非讓該名稱(chēng)消失。Shadows方式,適用于任何元素類(lèi)型,亦可聲明成任何元素類(lèi)型。隱藏時(shí)在派生類(lèi)中用private來(lái)修飾,它的子類(lèi)就會(huì)繼承它基類(lèi)的成員。

在編輯器中隱藏基類(lèi)成員的提示

 
 
 
  1. (ComponentModel.EditorBrowsableState.Never)> Public Shadows 基類(lèi)名稱(chēng)1,基類(lèi)名稱(chēng)2,.....  

用來(lái)控制VB.NET基類(lèi)成員訪問(wèn)的修飾符
Friend : 只在當(dāng)前項(xiàng)目中可用
private : 只在本類(lèi)中可用
protected : 在本類(lèi)和本類(lèi)的派生類(lèi)中可用的成員
protected friend:在當(dāng)前項(xiàng)目和本類(lèi)的派生類(lèi)中可用
public :類(lèi)以外的代碼也可以訪問(wèn)
默認(rèn)值為:public

每當(dāng)創(chuàng)建類(lèi)的實(shí)例時(shí),如果該對(duì)象中存在名為 New 的過(guò)程,則公共語(yǔ)言運(yùn)行庫(kù) (CLR) 嘗試執(zhí)行它。New 是一種稱(chēng)為“構(gòu)造函數(shù)”的過(guò)程,該構(gòu)造函數(shù)用于在對(duì)象中的任何其他代碼執(zhí)行之前初始化新對(duì)象。New 構(gòu)造函數(shù)可用于打開(kāi)文件、連接到數(shù)據(jù)庫(kù)、初始化變量以及處理任何需要在可使用對(duì)象前完成的其他任務(wù)。

當(dāng)創(chuàng)建派生類(lèi)的實(shí)例時(shí),基類(lèi)的 Sub New 構(gòu)造函數(shù)首先執(zhí)行,然后執(zhí)行派生類(lèi)中的構(gòu)造函數(shù)。這是因?yàn)?Sub New 構(gòu)造函數(shù)中的***行代碼使用語(yǔ)法 MyBase.New() 調(diào)用類(lèi)層次結(jié)構(gòu)中該類(lèi)本身緊上面的類(lèi)的構(gòu)造函數(shù)。然后調(diào)用該類(lèi)層次結(jié)構(gòu)中每個(gè)類(lèi)的 Sub New 構(gòu)造函數(shù),直到到達(dá)基類(lèi)的構(gòu)造函數(shù)。此時(shí),基類(lèi)構(gòu)造函數(shù)中的代碼執(zhí)行,接著執(zhí)行所有派生類(lèi)中每個(gè)構(gòu)造函數(shù)的代碼,***執(zhí)行最相近派生的類(lèi)中的代碼。當(dāng)不再需要某對(duì)象時(shí),CLR 調(diào)用該對(duì)象的 Finalize 方法,然后釋放其內(nèi)存。Finalize 方法稱(chēng)為“析構(gòu)函數(shù)”,因?yàn)樗鼒?zhí)行清理任務(wù),如保存狀態(tài)信息、關(guān)閉文件和與數(shù)據(jù)庫(kù)的連接,以及執(zhí)行在釋放對(duì)象前必須完成的其他任務(wù)。

當(dāng)調(diào)用派生類(lèi)的 Sub Finalize 方法時(shí),首先執(zhí)行所需的任何清理任務(wù),然后使用語(yǔ)法 MyBase.Finalize() 顯式調(diào)用其基類(lèi)的 Sub Finalize 方法。因此,Sub Finalize 方法首先從最相近派生的類(lèi)開(kāi)始運(yùn)行,***執(zhí)行VB.NET基類(lèi)中的代碼。

VB.NET引入了一些語(yǔ)句和修飾符支持繼承,下表描述了VB.NET基類(lèi)的繼承的語(yǔ)句和說(shuō)明:
語(yǔ)句/修飾符 描述

Inherits: Inherits 語(yǔ)句--指明了當(dāng)前的類(lèi)從哪個(gè)類(lèi)繼承。Inherits 要害詞只用在類(lèi)和接口中
NotInheritable: NotInheritable 修飾符--禁止用作基類(lèi)
MustInherit: MustInherit修飾符--指明不能建立當(dāng)前類(lèi)的實(shí)例。這個(gè)類(lèi)只能被繼承
Overridable: Overridable 修飾符--答應(yīng)類(lèi)的一個(gè)屬性或方法可以被Override。Public 方法缺省是 NotOverridable
Overrides: Overrides 修飾符--Override基類(lèi)的一個(gè)屬性或方法
NotOverridable: NotOverridable 修飾符 (缺省)- -禁止類(lèi)的一個(gè)屬性或方法被Override
MustOverride: MustOverride 修飾符--需要繼承的類(lèi)Override的屬性或方法。當(dāng)使用MustOverride 要害詞的時(shí)候,方法的定義只包括Sub, Function和 Property 語(yǔ)句。要非凡強(qiáng)調(diào)的是,其他任何語(yǔ)句是不答應(yīng)沒(méi)有End Sub, End Function或者 End Property 語(yǔ)句。類(lèi)中帶有MustOverride 方法都必須聲明為MustInherit。Public 方法缺省值是NotOverridable
Shadows: Shadows 修飾符--答應(yīng)重新使用被繼承的類(lèi)成員的名字。Shadow不刪除繼承得來(lái)的類(lèi)的類(lèi)型成員,它僅僅是使所有被繼承的類(lèi)型成員在派生類(lèi)中不可使用。Shadow是在派生類(lèi)中重新聲明類(lèi)成員

 
 
 
  1. Class A  
  2. Public Sub F()  
  3. Debug.Print("基類(lèi)不能重寫(xiě)")  
  4. End Sub  
  5. Public Overridable Sub G()  
  6. Debug.Print("基類(lèi)可重寫(xiě)")  
  7. End Sub  
  8. Public Sub H()  
  9. Debug.Print("A.H")  
  10. End Sub  
  11. End Class  
  12. Class B  
  13. Inherits A '繼承A  
  14. Public Shadows F As String = "隱藏基類(lèi),重新生成一個(gè)" 
  15. Public Overrides Sub G()  
  16. Debug.Print("重寫(xiě)")  
  17. End Sub  
  18. Public Overloads Sub G(ByVal s As Int32)  
  19. Debug.Print("重載")  
  20. End Sub  
  21. '隱藏基類(lèi)H成員,編輯器中看不到提示,但依然可以用  
  22. (System.ComponentModel.EditorBrowsableState.Never)> Public Shadows h As Int16 = "3" 
  23. End Class  
  24. Public Class Form1  
  25. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load  
  26. Dim b As New B()  
  27. Dim a As New A  
  28. a.F()  
  29. a.G()  
  30. a.H()  
  31. Debug.Print(b.F)  
  32. b.G()  
  33. b.G(3)  
  34. Debug.Print(b.h)  
  35. End Sub  
  36. End Class 

輸出結(jié)果:
基類(lèi)不能重寫(xiě)
基類(lèi)可重寫(xiě)
A.H
隱藏基類(lèi),重新生成一個(gè)
重寫(xiě)
重載
3


當(dāng)前標(biāo)題:關(guān)于VB.NET基類(lèi)繼承、重載、隱藏的總結(jié)歸納
標(biāo)題鏈接:http://www.5511xx.com/article/ccsocec.html