成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

關于VB.NET基類繼承、重載、隱藏的總結歸納

開發(fā) 后端
文章主要介紹了VB.NET基類的繼承,重寫,重載,隱藏,VB.NET類成員訪問的修飾符Friend,private ,protected,protected friend,public 。

很喜歡用VB.NET開發(fā)語言,在網上也經常收集,自己也總結了一點小筆記,在這里共大家參考一下,本文主要對VB.NET基類的繼承,重寫,重載,隱藏的概念和方法進行總結,來看看吧。

通過聲明Inherits關鍵字,來標識該類的基類是誰。Inherits 基類名

  1. Sub New(s as string)'構造,加入變量s 可要求強行賦值  
  2. '初始化  
  3. MyBase.New() '注意:這句話要放在sub內的***句,基類帶參數時要標明  
  4. End Sub  
  5. Protected Overrides Sub Finalize()'析構  
  6. '收尾  
  7. MyBase.Finalize()  
  8. End Sub 

在基類中用Overridable修飾符來標識允許基類中的屬性或方法在其派生類中被重寫,沒有標識的其實就是默認為有NotOverridable修飾符來隱式地標識,用于提醒編譯器該屬性或方法不可被重寫。

◆重寫: 在派生類中用Overrides重新編寫有Overridable標識的基類的方法或屬性。
◆重載: Overloads,用同樣的名稱,用不同的參數列表來創(chuàng)建多個方法和屬性,在調用時就可以適應不同參數類型的要求。
◆隱藏: 用派生類的名稱代替基類的名稱,并非讓該名稱消失。Shadows方式,適用于任何元素類型,亦可聲明成任何元素類型。隱藏時在派生類中用private來修飾,它的子類就會繼承它基類的成員。

在編輯器中隱藏基類成員的提示

  1. <System.ComponentModel.EditorBrowsable(ComponentModel.EditorBrowsableState.Never)> Public Shadows 基類名稱1,基類名稱2,.....  

用來控制VB.NET基類成員訪問的修飾符
Friend : 只在當前項目中可用
private : 只在本類中可用
protected : 在本類和本類的派生類中可用的成員
protected friend:在當前項目和本類的派生類中可用
public :類以外的代碼也可以訪問
默認值為:public

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

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

當調用派生類的 Sub Finalize 方法時,首先執(zhí)行所需的任何清理任務,然后使用語法 MyBase.Finalize() 顯式調用其基類的 Sub Finalize 方法。因此,Sub Finalize 方法首先從最相近派生的類開始運行,***執(zhí)行VB.NET基類中的代碼。


VB.NET引入了一些語句和修飾符支持繼承,下表描述了VB.NET基類的繼承的語句和說明:
語句/修飾符 描述

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

  1. Class A  
  2. Public Sub F()  
  3. Debug.Print("基類不能重寫")  
  4. End Sub  
  5. Public Overridable Sub G()  
  6. Debug.Print("基類可重寫")  
  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 = "隱藏基類,重新生成一個" 
  15. Public Overrides Sub G()  
  16. Debug.Print("重寫")  
  17. End Sub  
  18. Public Overloads Sub G(ByVal s As Int32)  
  19. Debug.Print("重載")  
  20. End Sub  
  21. '隱藏基類H成員,編輯器中看不到提示,但依然可以用  
  22. <System.ComponentModel.EditorBrowsable(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 

輸出結果:
基類不能重寫
基類可重寫
A.H
隱藏基類,重新生成一個
重寫
重載
3

【編輯推薦】

  1. 講述VB.NET實現拖動圖片
  2. 剖析VB.NET TextBox控件
  3. 簡單講解VB.NET ListBox控件
  4. 淺析VB.NET語言與VB語言對比
  5. 你是否了解VB.NET集成開發(fā)環(huán)境
責任編輯:田樹 來源: 博客
相關推薦

2009-11-10 13:08:13

VB.NET編程技巧

2009-11-02 13:14:18

VB.NET函數

2009-10-26 16:53:00

VB.NET常用代碼

2009-11-10 11:25:35

VB.NET與Basi

2009-10-21 09:19:40

VB.NET文件壓縮 

2009-11-04 13:12:33

VB.NET繼承類

2009-11-10 15:30:46

VB.NET編程原則

2009-11-10 16:37:48

VB.NET ANY

2009-10-30 16:31:55

VB.NET重載方法

2010-01-21 16:45:00

VB.NET繼承規(guī)則

2009-10-19 08:55:22

VB.NET多重繼承

2009-11-03 09:37:33

VB.NET重載

2009-10-13 14:50:59

VB.NET Envi

2010-01-12 16:20:44

VB.NET類

2009-10-20 17:38:54

VB.NET Comp

2009-11-10 15:36:24

VB.NET命名約定

2009-10-20 09:39:04

VB.NET Butt

2009-11-03 13:54:55

VB.NET繼承

2009-11-10 10:28:20

VB.NET誕生

2010-01-20 17:54:13

VB.NET特殊字符
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲精品成人网 | 日韩一区在线播放 | 自拍中文字幕 | 国产精品久久久久久久久久久新郎 | 日本小电影网站 | 成人国产精品色哟哟 | 国产成人高清视频 | 天天影视综合 | 91成人在线视频 | 日本国产高清 | 久久99精品久久久久久 | 国产美女自拍视频 | 四虎最新地址 | 精品国产乱码久久久久久影片 | 91久久北条麻妃一区二区三区 | 中文字幕精品一区二区三区精品 | 99久热在线精品视频观看 | 精品福利av导航 | 日韩午夜一区二区三区 | 国产综合在线视频 | 91 视频网站 | 成人免费观看男女羞羞视频 | 国产欧美日韩一区二区三区在线观看 | 中文字幕在线一区二区三区 | 欧美成人激情 | 亚洲午夜精品视频 | 精品视频一区二区 | 国产视频在线观看一区二区三区 | 看片天堂| 国产色婷婷精品综合在线手机播放 | 麻豆久久久久久久久久 | 国产精品毛片久久久久久 | 国产我和子的乱视频网站 | 亚洲有码转帖 | 久久久久成人精品 | 在线中文字幕av | 精品久久国产视频 | 亚洲欧美激情精品一区二区 | jlzzxxxx18hd护士| 精品日韩一区二区 | 黄色日本片|