溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何理解VB.NET繼承規(guī)則

發(fā)布時(shí)間:2021-10-27 18:09:30 來(lái)源:億速云 閱讀:179 作者:柒染 欄目:編程語(yǔ)言

如何理解VB.NET繼承規(guī)則,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

VB.NET中也有繼承相關(guān)應(yīng)技術(shù),而且相對(duì)于初學(xué)者來(lái)說(shuō)并不是很好理解這一應(yīng)用。下面就首先讓我們從VB.NET繼承規(guī)則來(lái)學(xué)習(xí),從中了解到這一應(yīng)用的基本概念,從而方便我們將來(lái)的深入學(xué)習(xí)。

用戶可以使用一個(gè)新的關(guān)鍵字"Inherts"在一個(gè)基本的類(lèi)的基礎(chǔ)上去建立一個(gè)新的類(lèi),則繼承類(lèi)可以繼承,擴(kuò)充基本類(lèi)的屬性、方法、事件、數(shù)據(jù)成員和事件處理程序。

VB.NET引入以下表述來(lái)支持VB.NET繼承規(guī)則的表述:

(1)Inherits表述--用來(lái)說(shuō)明當(dāng)前的類(lèi)是繼承了哪一個(gè)已經(jīng)存在的類(lèi)(基本類(lèi)),Inherits只有在類(lèi)中才能使用。

(2)NotInheritalbe modifier--防止程序把一個(gè)類(lèi)作為一個(gè)基本類(lèi)。

(3)MustInherit modifier--聲明這個(gè)類(lèi)是不能創(chuàng)建的,必須繼承下來(lái)的,惟一一種可以使用該類(lèi)的方法就是繼承它。

新的繼承的類(lèi)可以重載一些基本的方法,VB.NET使用以下這些關(guān)鍵字來(lái)控制屬性和方法的重載:

(1)Overridable--允許一個(gè)屬性或者方法在繼承類(lèi)中可以重載。公用的方法的缺省的值為NotOverridable。

(2)Overrides--允許用戶重載一個(gè)基本類(lèi)的屬性或者是方法。

(3)NotOverridable(缺省)--防止一個(gè)屬性或方法在繼承類(lèi)中被重載。

(4)MustOverride--當(dāng)該關(guān)鍵字被使用時(shí),需要繼承的類(lèi)一定要把該屬性或方法重載,其中方法的表述只包括Sub,Function或者Property。

注意:其他的描述是不允許的,這里沒(méi)有End Sub、End Function描述。有MustOverride方法的類(lèi)必須被聲明為MustInherit,公有的方法的缺省值為NotOverridable.并且關(guān)于繼承,還有以下VB.NET繼承規(guī)則:

(1)雖然,一個(gè)繼承類(lèi)只能夠從一個(gè)類(lèi)繼承而來(lái),但是它可以產(chǎn)生無(wú)數(shù)個(gè)接口。

(2)一個(gè)公有的類(lèi)不能繼承一個(gè)friend的或者私有的類(lèi),而且一個(gè)friend類(lèi)不能繼承一個(gè)私有的類(lèi)。

1.使用Mybase訪問(wèn)基本類(lèi)的方法

當(dāng)用戶在繼承類(lèi)中重載基本類(lèi)的方法時(shí),可以使用Mybase調(diào)用基本類(lèi)中的方法,以下的表述將向用戶提供關(guān)于Mybase的一些更詳細(xì)的描述。

(1)MyBase是對(duì)基本的類(lèi)和它的繼承成員的引用。

(2)在MyBase中限定的一些方法,沒(méi)有必要在Mybase中再進(jìn)行定義;它可以間接地在繼承類(lèi)中進(jìn)行定義,為了使Mybase可以正確地引用和編譯,一些基礎(chǔ)類(lèi)必須在引用時(shí)包含一個(gè)和其參數(shù)名稱(chēng)和類(lèi)型匹配的方法。

(3)Mybase不能用來(lái)限定本身,所以下面的描述是錯(cuò)誤的:
MyBase.MyBase.BtnOK_Click()

(4)MyBase是一個(gè)關(guān)鍵字。

(5)MyBase不能被用成一個(gè)變量或者是過(guò)程,或者用在"IS"比較中,MyBase并不是一個(gè)真正的對(duì)象。

(6)MyBase可以被用作一個(gè)共享成員(shared members);這時(shí)它是有值的,因?yàn)楣蚕沓蓡T是可以被shadowed。

(7)MyBase不能在模塊中使用。

2.使用MyClass

(1)MyClass允許調(diào)用一個(gè)可以重載的方法,并且確認(rèn)調(diào)用的是方法里的implementation過(guò)程,而不是繼承類(lèi)里的重載的方法,以下的使用方法是VB.NET繼承規(guī)則中合法的,用MyClass在一個(gè)類(lèi)中去限定一個(gè)方法,這個(gè)方法在基本類(lèi)里面有定義,但是在這個(gè)類(lèi)中沒(méi)有這個(gè)方法的定義。這種引用和MyBase.Method具有一樣的意義。

(2)MyClass是一個(gè)關(guān)鍵字。

(3)MyClass不能被用成一個(gè)變量,或者是過(guò)程,或者用在"Is"比較中,MyClass并不是一個(gè)真正的對(duì)象。

(4)MyClass可以引用包含的類(lèi)以及它的繼承成員,并且能夠被用作訪問(wèn)在類(lèi)中定義的公有的成員,但是不能訪問(wèn)類(lèi)中的私有成員。

(5)MyClass可以被用作共享成員的限定。

(6)MyClass不能被用在標(biāo)準(zhǔn)模塊中。

看完上述內(nèi)容,你們掌握如何理解VB.NET繼承規(guī)則的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI