溫馨提示×

溫馨提示×

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

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

VB.NET 中Protected方法有什么用

發(fā)布時間:2021-08-11 15:43:42 來源:億速云 閱讀:216 作者:Leah 欄目:編程語言

今天就跟大家聊聊有關(guān)VB.NET 中Protected方法有什么用,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

如果你在父類中聲明一個Private(私有)的方法、屬性和變量,那么在新的子類中就不能得到這個類的方法、屬性和變量。當(dāng)然也有個例外,就是New方法。構(gòu)造函數(shù)方法必須在每一個子類中重新編寫。這個內(nèi)容我們在本教程的后面將深入討論。舉個例子,我們可能從LineItem類中重寫Amount方法,具體如下:

Public Function Amount() As Single   Return CalcAmount   End Function   Private Function CalcAmount() As Single  Return fQuantity * fPrice  End Function

從這個改變中,我們可以看到公共的方法Amount使用了Private方法來工作。當(dāng)我們利用LineItem來創(chuàng)建子類ServiceLine的時候,任何的ServiceLine對象都有一個Amount方法,因為它在基類中聲明為Public。另外一方面,這個CalcAmount方法被聲明為Private,所以所有的ServiceLine類和任何的客戶代碼都不能訪問它。這里值得一提的是,既然Amount方法存在于LineItem類中,它就可以訪問CalcAmount方法即使在ServiceLine類中不能看到這個方法。

舉個例子,在我們的客戶代碼中我們可以這樣做:

Protected Sub Button1_Click(ByVal sender As Object, _  ByVal e As System.EventArgs)  Dim sl As ServiceLine   sl = New ServiceLine()  sl.Item = delivery sl.Price = 20 sl.DateProvided = Now MsgBox(sl.Amount, MsgBoxStyle.Information, amount)  End Sub

結(jié)果顯示在一個消息框中,這樣就闡明了CalcAmount方法被成功調(diào)用了,雖然客戶代碼和ServiceLine代碼沒有直接調(diào)用它。

VB.NET Protected方法

有時,Public和Private并不能滿足我們的要求。如果我們想聲明一些變量或者方法為Private,那么這些變量和方法就只能在我們的類中使用;但是當(dāng)我們聲明一些變量和方法為Public或者Friend,那么這些變量和方法就可以在子類和客戶代碼中使用。但是,有時有聲明一些變量和方法,讓它們在子類中有效,而在客戶代碼中不能用,該怎么辦呢?這里可以使用VB.NET Protected方法轄域。當(dāng)變量或者方法被聲明為Protected的時候,對于任何類外部的代碼將不能調(diào)用,但是還是可以被由它繼承而來的子類調(diào)用。舉個VB.NET Protected方法例子吧,如下:

Public Class ParentClass  Protected TheValue As Integer  End Class   Public Class SubClass  Inherits ParentClass   Public Function GetValue() As Integer  Return TheValue  End Function  End Class

在上面的代碼中我們有一個父類,它有一個Protected成員變量TheValue。這個變量在任何的客戶代碼中都不能被調(diào)用。但是這個變量對于任何的子類都是有效的因為它繼承了這個父類。在這個例子中,SubClass有一個Public方法返回了Protected變量的數(shù)值,但是這個變量對于類的外部任何客戶代碼都是無效的。

看完上述內(nèi)容,你們對VB.NET 中Protected方法有什么用有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細節(jié)

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

AI