亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

這就是靜態多態性對 java 中變量的作用方式嗎

這就是靜態多態性對 java 中變量的作用方式嗎

四季花海 2023-04-26 16:04:00
我想確保我對靜態多態性的理解是正確的請看下面的代碼class a {           int x=0;    }class b extends a {           int x=4;    }              public class main4 {     public static void main(String[] args) {        a f = new b();        System.out.println(f.x);                b ff = new b();        System.out.println(ff.x);    }}輸出是04發生這種情況是因為編譯器查看引用的聲明類型并據此確定在編譯時打印哪個 x 嗎?(f 被聲明為類型 a,編譯器查看 fx 并決定它意味著 ax)??&如果是這樣,這稱為靜態多態性或隱藏還是什么?提前致謝
查看完整描述

1 回答

?
慕姐8265434

TA貢獻1813條經驗 獲得超2個贊

多態性就像通過鑰匙孔看對象。您看不到整個對象,而只看到它的一部分,它對應于您已將對象的引用分配給的變量類型。

該對象可以被視為不同的“形狀/形式” - 這取決于您正在查看的鑰匙孔。但它仍然是計算機內存中的同一個對象。您可以看到的形式取決于您將對象分配給的變量類型。

多態性是看到同一對象的多種形式。

如果您有對象創建者-當您將此對象分配給 type 的變量時,new b()您會將其視為類代表。當您將它分配給 type 的變量時,您會把它看作一個類代表。但它仍然是同一個對象。并且......你可以在變量之間轉換它:bbaa

f = (a)ff;

你會發現同一對象突然被視為a類的代表(包括x屬于該類的字段的可見性a)。


查看完整回答
反對 回復 2023-04-26
  • 1 回答
  • 0 關注
  • 106 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號