成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Java中如何實現(xiàn)方法的重寫與成員變量的隱藏

這篇文章將為大家詳細(xì)講解有關(guān)Java中如何實現(xiàn)方法的重寫與成員變量的隱藏,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

創(chuàng)新互聯(lián)公司專注于企業(yè)成都全網(wǎng)營銷推廣、網(wǎng)站重做改版、東莞網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5頁面制作、商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為東莞等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

在討論這個問題之前,我們看一段特別特別簡單的代碼,請問一下方法的數(shù)據(jù)結(jié)果是什么?

/** 
 * @author Hollis 17/9/27. 
 */ public class FieldOverriding { 
 public static void main(String[] args) { 
 Sub c1 = new Sub(); 
 System.out.println(" c1.s : " + c1.s); 
 System.out.println(" c1.say : " + c1.say()); 
 Super c2 = new Sub(); 
 System.out.println(" c2.s : " + c2.s); 
 System.out.println(" c2.say : " + c2.say()); 
 } 
} 
class Super { 
 String s = "Super"; 
 String say(){ 
 return "hello Super"; 
 } 
} 
class Sub extends Super { 
 String s = "Sub"; 
 String say(){ 
 return "hello Sub"; 
 } 
}

輸出結(jié)果:

 c1.s : Sub 
 c1.say : hello Sub 
 c2.s : Super 
 c2.say : hello Sub

和你想的一樣嗎,如果一樣的話,那就不用繼續(xù)往下看了。因為這個本來就不難,知道了就行。

Java中的重寫

在深入理解Java中的重寫和重載中我們介紹過:

在Java的子類與父類中有兩個名稱、參數(shù)列表都相同的方法的情況。由于他們具有相同的方法簽名,所以子類中的新方法將覆蓋父類中原有的方法。

正式因為Java在繼承中有方法的重寫,所以,這也體現(xiàn)了Java的動態(tài)多態(tài)性。

成員變量在Java中能夠被重寫么?

上面的Java的重寫介紹中明確的說了,重寫,指的是方法。并沒有提到成員變量。通過上面的例子,其實我們也可以發(fā)現(xiàn),成員變量并沒有被重寫。

所以,Java中,成員變量并不會被重寫。這里就有另外一個詞:隱藏。

Java中成員變量的隱藏

Java文檔中對隱藏域的定義:

Within a class, a field that has the same name as a field in the superclass hides the superclass's field, even if their types are different. Within the subclass, the field in the superclass cannot be referenced by its simple name. Instead, the field must be accessed through super. Generally speaking, we don't recommend hiding fields as it makes code difficult to read.

翻譯成中文:

在一個類中,子類中的成員變量如果和父類中的成員變量同名,那么即使他們類型不一樣,只要名字一樣。父類中的成員變量都會被隱藏。在子類中,父類的成員變量不能被簡單的用引用來訪問。而是,必須從父類的引用獲得父類被隱藏的成員變量,一般來說,我們不推薦隱藏成員變量,因為這樣會使代碼變得難以閱讀。

其實,簡單來說,就是子類不會去重寫覆蓋父類的成員變量,所以成員變量的訪問不能像方法一樣使用多態(tài)去訪問。

如何訪問被隱藏的成員變量

其實,通過前面的例子,和剛剛關(guān)于成員變量的介紹,其實你已經(jīng)知道了如何訪問被隱藏的成員變量。 就是使用父類的引用來訪問成員變量,如Super c2 = new Sub(); System.out.println(" c2.s : " + c2.s);。或者使用System.out.println(((Super)c1).s);。

關(guān)于“Java中如何實現(xiàn)方法的重寫與成員變量的隱藏”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

文章名稱:Java中如何實現(xiàn)方法的重寫與成員變量的隱藏
本文網(wǎng)址:http://jinyejixie.com/article16/psiddg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、網(wǎng)站制作軟件開發(fā)、外貿(mào)建站面包屑導(dǎo)航、標(biāo)簽優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站
金塔县| 云霄县| 大田县| 昌平区| 绵阳市| 景德镇市| 托克逊县| 吴江市| 广水市| 壤塘县| 临沧市| 乌鲁木齐县| 泸州市| 德庆县| 闵行区| 廊坊市| 南陵县| 阿图什市| 拉孜县| 莒南县| 万荣县| 贡嘎县| 阳新县| 河曲县| 盐城市| 万盛区| 松江区| 洛阳市| 恩施市| 东源县| 玉门市| 北川| 土默特左旗| 湟中县| 麻阳| 阜城县| 高雄县| 贵州省| 东平县| 漠河县| 新营市|