溫馨提示×

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

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

如何通過實(shí)例分析java多態(tài)

發(fā)布時(shí)間:2021-10-13 11:53:45 來源:億速云 閱讀:107 作者:柒染 欄目:編程語言

本篇文章為大家展示了如何通過實(shí)例分析java多態(tài),內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

首先來看這樣的一段代碼,其中對(duì)于類的定義如下:

class Parent{  public int myValue=100;  public void printValue() {    System.out.println("Parent.printValue(),myValue="+myValue);  }}class Child extends Parent{  public int myValue=200;  public void printValue() {    System.out.println("Child.printValue(),myValue="+myValue);  }}

我們來一個(gè)一個(gè)的回答問題:

1.運(yùn)行結(jié)果如圖

2.對(duì)于這個(gè)運(yùn)行結(jié)果的解釋,第一行第二行都是正常的調(diào)用,第三行中,將child賦給了parent 再進(jìn)行的輸出,這時(shí)候我們發(fā)現(xiàn)結(jié)果變成了200 并且輸出語句也變了。

第四句,執(zhí)行了parent.myValue++;但結(jié)果并沒有改變。第五行中,將parent類強(qiáng)行轉(zhuǎn)換為子類后又進(jìn)行了自增,結(jié)果變成了201.

3.對(duì)于這里的分析,我們發(fā)現(xiàn)子類賦值給父類是沒有問題的,也就是說子類完全可以直接轉(zhuǎn)換成父類。第四行的語句結(jié)果還是200,說明他對(duì)于myValue的++還是調(diào)用了父類中的Value,但最后還是輸出了子類的Value.說明子類賦給父類后,只是一部分替代,并不是完全覆蓋。第五句里,將父類轉(zhuǎn)換成子類然后進(jìn)行++,第四句第五句結(jié)合起來,可以說明子類賦值給父類,并不是所謂的覆蓋,只是把原本的東西給隱藏了罷了。而強(qiáng)制轉(zhuǎn)換后則不同,直接變成了子類。

最后,這其實(shí)告訴我們?cè)趯?shí)際應(yīng)用中,我們不應(yīng)該把父類和子類設(shè)置成相同的源代碼和成員變量,對(duì)于程序員在編程時(shí)的理解十分不利。

上述內(nèi)容就是如何通過實(shí)例分析java多態(tài),你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(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