Java成員變量的隱藏(實例講解)
一、如果子類與父類中有一個相同名稱的成員變量,那么子類的成員變量會不會覆蓋父類的成員變量?我們看下在的例子:
public class A {
public int x=10;
}
public class B extends A {
public int x=20;
}
public class C {
public static void main(String[] args) {
A a=new B();
System.out.println(a.x); //1
B b=new B();
System.out.println(b.x); //2
System.out.println(((A)b).x); //3
}
}
運行C類的main方法的結(jié)果為:
10
20
10
通過結(jié)果我們可以看出子類是不會覆蓋父類的成員變量,我們eclipse的調(diào)試工具也能很清晰的看出在對像a中同時存在兩個x的成員變量(其中一個是父類的),如下圖示:

通過第1個和第3個的結(jié)果,可以得出對像對于成員的直接訪問是靜態(tài)邦定的 ,官方解釋如下:
在一個類中,子類中的成員變量如果和父類中的成員變量同名,那么即使他們類型不一樣,只要名字一樣。父類中的成員變量都會被隱藏。
在子類中,父類的成員變量不能被簡單的用引用來訪問。而是,必須從父類的引用獲得父類被隱藏的成員變量,一般來說,我們不推薦隱藏成員變量,
因為這樣會使代碼變得難以閱讀。
對于靜態(tài)方法與成員變量類似,如下:
public class A {
public static void print() {
System.out.println("A Static ");
}
}
public class B extends A {
public static void print() {
System.out.println("B Static ");
}
}
public class C {
public static void main(String[] args) {
A a=new B();
a.print();
B b=new B();
b.print();
((A)b).print();
}
}
結(jié)果如下:
A Static
B Static
A Static
以上這篇Java成員變量的隱藏(實例講解)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于SpringBoot攔截器中Bean無法注入的問題
這兩天遇到SpringBoot攔截器中Bean無法注入問題。下面介紹關(guān)于SpringBoot攔截器中Bean無法注入的問題,感興趣的朋友一起看看吧2021-10-10
Java對敏感數(shù)據(jù)進(jìn)行加密的方法詳解
敏感數(shù)據(jù)的加密是數(shù)據(jù)安全的重要方面,尤其是對于手機號和身份證號這類個人信息,本文主要為大家介紹了Java對敏感數(shù)據(jù)進(jìn)行加密的相關(guān)方法,希望對大家有所幫助2024-03-03
springboot?集成easy-captcha實現(xiàn)圖像驗證碼顯示和登錄
本文主要介紹了springboot?集成easy-captcha實現(xiàn)圖像驗證碼顯示和登錄,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04
Springboot SseEmitter流式輸出的實現(xiàn)代碼
本文介紹了Spring Boot中使用SseEmitter實現(xiàn)流式輸出的原理和示例代碼,通過SseEmitter,可以實現(xiàn)客戶端和服務(wù)器之間的實時通信,服務(wù)器可以分塊發(fā)送數(shù)據(jù),而客戶端可以實時接收和處理這些數(shù)據(jù),,感興趣的朋友一起看看吧2025-03-03
詳解大數(shù)據(jù)處理引擎Flink內(nèi)存管理
Flink是jvm之上的大數(shù)據(jù)處理引擎,jvm存在java對象存儲密度低、full gc時消耗性能,gc存在stw的問題,同時omm時會影響穩(wěn)定性。針對頻繁序列化和反序列化問題flink使用堆內(nèi)堆外內(nèi)存可以直接在一些場景下操作二進(jìn)制數(shù)據(jù),減少序列化反序列化消耗。本文帶你詳細(xì)理解其原理。2021-05-05
servlet生命周期_動力節(jié)點Java學(xué)院整理
這篇文章主要為大家詳細(xì)介紹了servlet生命周期的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07
Springboot?Mybatis使用pageHelper如何實現(xiàn)分頁查詢
這篇文章主要介紹了Springboot?Mybatis使用pageHelper如何實現(xiàn)分頁查詢問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05

