導航:首頁 > 編程語言 > 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成員變數的覆蓋相關的資料

熱點內容
程序員老公要加班 瀏覽:961
51單片機控制的超聲波 瀏覽:827
2021去水印最新源碼 瀏覽:232
ug編程刀具號重復 瀏覽:959
空當接龍演算法 瀏覽:609
可壓縮流體非恆定二維流動 瀏覽:695
天龍八部網單沒有找到技能文件夾 瀏覽:861
android串口程序 瀏覽:833
上海機器人程序員 瀏覽:914
兩台阿里雲伺服器如何拷貝 瀏覽:170
阿里媽媽淘寶聯盟需要什麼app 瀏覽:368
什麼人可以做編程員 瀏覽:358
網盤會員加速是在線解壓嘛 瀏覽:109
單片機按鍵匯編程序 瀏覽:728
傳播學綱要pdf第二版 瀏覽:385
樂友進銷存有什麼app 瀏覽:554
顯示器維修pdf 瀏覽:618
qq支付時怎麼雙層加密 瀏覽:943
2008伺服器如何做安全 瀏覽:310
戴爾系統加密怎麼解密 瀏覽:469