多態(tài)中父類引用指向子類對(duì)象的一些問(wèn)題的個(gè)人看法

父類引用指向子類對(duì)象:假設(shè)我有一個(gè)Animal類敛熬,和一個(gè)Dog類泰讽,則:Animal animal = new Dog();此為父類引用指向子類對(duì)象

1.為什么要用父類的引用指向子類的對(duì)象卒蘸?

有句話我覺(jué)得很精辟:現(xiàn)在寫的代碼校辩,被將來(lái)的代碼調(diào)用,這都不算事「缛遥現(xiàn)在寫的代碼霉旗,能調(diào)用將來(lái)的代碼,這才牛逼勒蛀骇。

具體來(lái)說(shuō):假如有一個(gè)類厌秒,這個(gè)類需要實(shí)現(xiàn)吃各種水果的方法。那如果我們?cè)陬惱锩娑x方法:

public ?void eat(Banana banana) { }

public ?void eat(Apple apple) { }

擅憔。鸵闪。。暑诸。蚌讼。。

這樣就顯得很麻煩个榕,但要是我要是把這個(gè)方法寫成: public void eat(Fruit fruit){} ?這樣只要繼承Fruit或者實(shí)現(xiàn)Fruit接口篡石,就都可以作為eat的參數(shù)。這樣就簡(jiǎn)化了程序西采。

再比如:

寫一個(gè)畫圖程序的時(shí)候凰萨,你想畫方,畫圓,畫線胖眷。方武通,圓,線都屬于Shape類型珊搀。那么就應(yīng)該有

class Shape{}

class Fang extends Shape{}

class Yuan extends Shape{}

class Xian extends Shape{}

然后把他們畫出來(lái)的方法在某個(gè)類里冶忱,這個(gè)方法接收一個(gè)圖形,不管是什么樣的形狀境析,你只要給我一個(gè)圖形囚枪,我就可以把它畫出來(lái),public void draw();

子類里面重寫這個(gè)方法簿晓。如果你的參數(shù)定義成Shape s眶拉,那么就可以接受繼承Shape的所有實(shí)際形狀 public void draw(Shape s);這就實(shí)現(xiàn)了多態(tài)的概念。

2.這樣做有什么意義憔儿?

子類是對(duì)父類的一個(gè)改進(jìn)和擴(kuò)充忆植,所以一般子類在功能上較父類更強(qiáng)大,屬性較父類更獨(dú)特谒臼, 定義一個(gè)父類類型的引用指向一個(gè)子類的對(duì)象既可以使用子類強(qiáng)大的功能朝刊,又可以抽取父類的共性。

3為什么父類引用子類對(duì)象時(shí)蜈缤,不能調(diào)用子類特有的方法拾氓?

比如說(shuō):

定義一個(gè)父類Animal,一個(gè)子類Bird底哥,Bird有個(gè)獨(dú)有的方法:飛行咙鞍。我現(xiàn)在 Animal animal = new Bird ? ?(); 你要調(diào)用 animal.fly()趾徽;這是不符合邏輯的续滋,因?yàn)閯?dòng)物不是都會(huì)飛。這就要回歸到問(wèn)題2:定義一個(gè)父類類型的引用指向一個(gè)子類的對(duì)象既可以使用子類強(qiáng)大的功能孵奶,又可以抽取父類的共性疲酌。

4.這樣做的好處是什么?

總的來(lái)說(shuō)有三方面:一,實(shí)現(xiàn)多態(tài)了袁。二朗恳,減小耦合。三载绿,增加了程序的可移植性粥诫。

5.子類能覆蓋父類的變量嗎(父類引用指向子類對(duì)象時(shí))?答案是不能

比如我在Animal中:int i =1; ?在Dog中: int i = 1000 ;

然后 Animal animal = new Dog()崭庸;

輸出animal.i怀浆,結(jié)果為1.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末劝堪,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子揉稚,更是在濱河造成了極大的恐慌,老刑警劉巖熬粗,帶你破解...
    沈念sama閱讀 218,451評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件搀玖,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡驻呐,警方通過(guò)查閱死者的電腦和手機(jī)灌诅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)含末,“玉大人猜拾,你說(shuō)我怎么就攤上這事∮逗校” “怎么了挎袜?”我有些...
    開(kāi)封第一講書人閱讀 164,782評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)肥惭。 經(jīng)常有香客問(wèn)我盯仪,道長(zhǎng),這世上最難降的妖魔是什么蜜葱? 我笑而不...
    開(kāi)封第一講書人閱讀 58,709評(píng)論 1 294
  • 正文 為了忘掉前任全景,我火速辦了婚禮,結(jié)果婚禮上牵囤,老公的妹妹穿的比我還像新娘爸黄。我一直安慰自己,他們只是感情好揭鳞,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,733評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布炕贵。 她就那樣靜靜地躺著,像睡著了一般汹桦。 火紅的嫁衣襯著肌膚如雪鲁驶。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,578評(píng)論 1 305
  • 那天舞骆,我揣著相機(jī)與錄音钥弯,去河邊找鬼。 笑死督禽,一個(gè)胖子當(dāng)著我的面吹牛脆霎,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播狈惫,決...
    沈念sama閱讀 40,320評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼睛蛛,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼鹦马!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起忆肾,我...
    開(kāi)封第一講書人閱讀 39,241評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤荸频,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后客冈,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體旭从,經(jīng)...
    沈念sama閱讀 45,686評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,878評(píng)論 3 336
  • 正文 我和宋清朗相戀三年场仲,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了和悦。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,992評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡渠缕,死狀恐怖鸽素,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情亦鳞,我是刑警寧澤馍忽,帶...
    沈念sama閱讀 35,715評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站燕差,受9級(jí)特大地震影響舵匾,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜谁不,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,336評(píng)論 3 330
  • 文/蒙蒙 一坐梯、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧刹帕,春花似錦吵血、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,912評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至挫掏,卻和暖如春侦另,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背尉共。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,040評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工褒傅, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人袄友。 一個(gè)月前我還...
    沈念sama閱讀 48,173評(píng)論 3 370
  • 正文 我出身青樓殿托,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親剧蚣。 傳聞我的和親對(duì)象是個(gè)殘疾皇子支竹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,947評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容