久草最新视频-久草最新网址-久国产-久国产视频-天天插夜夜操-天天插一插

為什么Java中類的成員變量不能被重寫?

這篇文章討論了Java面向?qū)ο蟾拍钪幸粋(gè)基本的概念--Field Hiding(成員變量隱藏)

成員變量在Java中能夠被重寫么?
Let’s first take a look at the following example which creates two Sub objects. One is
assigned to a Sub reference, the other is assigned to a Super reference.
我們看下面這個(gè)例子,我們創(chuàng)建了兩個(gè)子對(duì)象,一個(gè)使用的是子對(duì)象的引用,一個(gè)使用的是父對(duì)象的引用。

public class FieldOverriding {
 
    public static void main(String[] args) {
        Sub c1 = new Sub();
        Super c2 = new Sub();
        System.out.println(c1.s);
        System.out.println(c2.s);
 
    }
 
}
 
class Super {
    String s = "Super";
}
 
class Sub extends Super {
    String s = "Sub";
}
程序的輸出結(jié)果是:


Paste_Image.png
按照我們已有的多態(tài)的概念,第二個(gè)應(yīng)該是輸出sub才對(duì),但卻輸出了super。這是為什么呢?

不會(huì)重寫成員變量,而是隱藏成員變量
Java文檔中對(duì)隱藏域的定義:

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.

意思就是:

在一個(gè)類中,子類中的成員變量如果和父類中的成員變量同名,那么即使他們類型不一樣,只要名字一樣。父類中的成員變量都會(huì)被隱藏。在子類中,父類的成員變量不能被簡(jiǎn)單的用引用來訪問。而是,必須從父類的引用獲得父類被隱藏的成員變量,一般來說,我們不推薦隱藏成員變量,因?yàn)檫@樣會(huì)使代碼變得難以閱讀。

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

訪問隱藏域的方法
就是使用父類的引用類型,那么就可以訪問到隱藏域,就像我們例子中的代碼

就是使用類型轉(zhuǎn)換System.out.println(((Super)c1).s);

北大青鳥網(wǎng)上報(bào)名
北大青鳥招生簡(jiǎn)章
主站蜘蛛池模板: 亚洲熟妇毛茸茸 | 久久久久香蕉 | 国产欧美成人免费观看 | 久久99精品国产麻豆宅宅 | 中文字幕1区2区 | 日韩美一区二区三区 | 午夜成年免费观看视频 | 国产传媒果冻天美传媒 | 日本中文字幕不卡 | 狠狠五月深爱婷婷网 | 九九热精 | 国产成人精品一区二区 | 国产情侣真实露脸在线最新 | 依欧美视频 | 9热这里只有真品 | 国产一级片在线 | 91探花福利精品国产自产在线 | 日本在线视频免费观看 | 久久噜噜噜 | 亚洲国产成人久久午夜 | 国产视频精品久久 | 亚洲综合五月天婷 | 精品久久久噜噜噜久久7 | 欧美在线高清视频播放免费 | 四虎在线免费观看视频 | 人人九九精 | 不卡网| 亚洲福利一区二区三区 | 免费观看四虎精品国产永久 | 国产女乱淫真高清免费视频 | 欧美高清视频 | 麻豆成人传媒一区二区 | 亚洲精品不卡在线 | 亚洲日本在线播放 | 午夜视频在线观看一区 | 国产一卡2卡3卡4卡公司在线 | 韩国美女爽快毛片免费 | 色男人社区 | 日本免费中文字幕 | 色视频免费观看 | 亚洲日本中文字幕天堂网 |