導航:首頁 > 編程語言 > java成員變數的覆蓋

java成員變數的覆蓋

發布時間:2023-12-17 17:51:27

『壹』 如何理解Java中的隱藏與覆蓋

隱藏與覆蓋類方法
在講清這個問題之前,先明白什麼是隱藏?什麼是覆蓋?
所謂隱藏,是指運行時系統調用當前對象引用的編譯時類型中定義的方法;對於覆蓋,則指運行時系統調用當前對象引用運行時類型中定義的方法。
所以在執行Student1
s
=
new
Graate1();和Graate1
g
=
new
Graate1();時,(1)先進行Student1類的構造,這里包括兩個方法study()和exercise(),由於study()方法被覆蓋,所以先執行Graate1里study(),再執行Student1里的exercise();(2)再進行Graate1類的構造,同樣包括兩個方法study()和exercise(),所以執行順序為先Graate1里的study()方法,再Graate1里的exercise()方法。
2.
隱藏與覆蓋成員變數
如果子類中的變數和父類中的變數具有相同的名字,那麼子類中的變數就會隱藏父類中的變數,不管他們的類型是什麼,也不管他們是類變數還是實例變數。
所以在執行諸如System.out.print(s.math);之類的s實例的程序時,顯示為Student1類的成員變數,而執行諸如System.out.print(g.math);之類的g實例的程序時,顯示為Graate1類的成員變數。

『貳』 JAVA成員變數隱藏和方法的覆蓋

從入口程序main開始看,第一句話是
Subclass Subc=new Subclass();
其作用是實例化Subclass類的一個實例出來,使用的構造函數是無參構造函數。

現在轉向看Subclass類,在這個類的無參數構造函數中代碼如下:
Subclass(){
super();//A
x=5;//B
System.out.println("in Subclass:x="+x);//②
}
可以看得見第一句使用的是super()方法,起作用是繼承父類Superclass的構造方法:
Superclass(){
x=3;
System.out.println("in Superclass:x="+x);//①
}
也就是說Subclass()方法代碼內容是如下的內容:
Subclass(){
x=3;
System.out.println("in Superclass:x="+x);//①
x=5;//B
System.out.println("in Subclass:x="+x);//②
}

所以現在這里有兩個輸出語句,結果如下:
in Superclass:x=3
in Subclass:x=5

現在返回入口程序main()方法,開始執行該方法中的第二句話:
Subc.dosomething();
這句話的作用是執行Subclass類中的dosomething方法,所以我們查看Subclass類的方法void dosomething()內容如下:

super.dosomething();
System.out.println("in Subclass.dosomething()");
System.out.println("super.x="+super.x+"\tsub.x="+x);

可以看到,第一句話super.dosomething();是繼承父類的dosomething()方法,用父類的這個方法內容替換掉這句話,void dosomething()內容如下:

System.out.println("in Superclass.dosomething()");//③
System.out.println("in Subclass.dosomething()");//④
System.out.println("super.x="+super.x+"\tsub.x="+x);//⑤

所以這里就是連續輸出三句話:
in Superclass.dosomething()
in Subclass.dosomething()
super.x=3 sub.x=5

一定要知道super的作用,super()就是使用父類的構造函數,super.屬性/s uper.方法,就是使用父類屬性/方法。

閱讀全文

與java成員變數的覆蓋相關的資料

熱點內容
android電視游戲 瀏覽:670
得物app用什麼方式出售 瀏覽:783
linuxandroid模擬器下載 瀏覽:971
php類常量訪問 瀏覽:586
視頻文件壓縮工具 瀏覽:13
什麼什麼佳人app 瀏覽:6
施耐德cfc編程 瀏覽:322
如何把pdf文件轉成圖片 瀏覽:538
張劍閱讀150篇pdf 瀏覽:359
拉卡拉收款寶app叫什麼名 瀏覽:340
c4d動態解壓 瀏覽:711
多個pdf合並為一個 瀏覽:314
程序中的編譯執行 瀏覽:33
plc控制與單片機控制 瀏覽:884
如何讓安卓手機操控電腦 瀏覽:187
電腦電銷加密電話號碼破解 瀏覽:507
世界史綱pdf 瀏覽:135
湖北社保年審app叫什麼名字 瀏覽:854
邁達克雲伺服器 瀏覽:599
mfc深入淺出從mfc設計到mfc編程 瀏覽:83