Java 多態(tài) 封裝 繼承

C++
http://www.cnblogs.com/chenssy/,闡述Java基礎(chǔ)攒暇,力圖簡潔但夠深入。

1.封裝

封裝的定義:

首先是抽象子房,把事物抽象成一個類形用,其次才是封裝,將事物擁有的屬性和動作隱藏起來证杭,只保留特定的方法與外界聯(lián)系田度,封裝,也就是把客觀事物封裝成抽象的類解愤,并且類可以把自己的數(shù)據(jù)和方法只讓可信的類或者對象操作镇饺,對不可信的進(jìn)行信息隱藏。

為什么需要封裝:

封裝符合面向?qū)ο笤O(shè)計(jì)原則的第一條:單一性原則送讲,一個類把自己該做的事情封裝起來奸笤,而不是暴露給其他類去處理,當(dāng)內(nèi)部的邏輯發(fā)生變化時哼鬓,外部調(diào)用不用因此而修改监右,他們只調(diào)用開放的接口,而不用去關(guān)心內(nèi)部的實(shí)現(xiàn)

2. 繼承

Java的類可以分為三類:

類:使用class定義异希,沒有抽象方法

抽象類:使用abstract class定義健盒,可以有也可以沒有抽象方法

接口:使用inerface定義,只能有抽象方法

在這三個類型之間存在如下關(guān)系:

類可以extends:類称簿、抽象類(必須實(shí)現(xiàn)所有抽象方法)扣癣,但只能extends一個,可以implements多個接口(必須實(shí)現(xiàn)所有接口方法)

抽象類可以extends:類予跌,抽象類(可全部、部分善茎、或者完全不實(shí)現(xiàn)父類抽象方法)券册,可以implements多個接口(可全部、部分、或者完全不實(shí)現(xiàn)接口方法)

接口只能extends一個接口

繼承以后子類可以得到什么:

子類擁有父類非private的屬性和方法烁焙;子類可以添加自己的方法和屬性航邢,即對父類進(jìn)行擴(kuò)展

子類可以重新定義父類的方法,即多態(tài)里面的覆蓋

關(guān)于構(gòu)造函數(shù):

構(gòu)造函數(shù)不能被繼承骄蝇,子類可以通過super()顯示調(diào)用父類的構(gòu)造函數(shù)

創(chuàng)建子類時膳殷,編譯器會自動調(diào)用父類的 無參構(gòu)造函數(shù)

如果父類沒有定義無參構(gòu)造函數(shù),子類必須在構(gòu)造函數(shù)的第一行代碼使用super()顯示調(diào)用

類默認(rèn)擁有無參構(gòu)造函數(shù)九火,如果定義了其他有參構(gòu)造函數(shù)赚窃,則無參函數(shù)失效,所以父類沒有定義無參構(gòu)造函數(shù)岔激,不是指父類沒有寫無參構(gòu)造函數(shù)勒极。為什么需要繼承:

代碼重用是一點(diǎn),最重要的還是所謂向上轉(zhuǎn)型虑鼎,即父類的引用變量可以指向子類對象,這是Java面向?qū)ο笞钪匾匦远鄳B(tài)的基礎(chǔ)。

3. 多態(tài)

在了解多態(tài)之前补箍,首先需要知道方法的唯一性標(biāo)識即什么是相同/不同的方法:

一個方法可以由:修飾符如public斯够、static+返回值+方法名+參數(shù)+throw的異常 5部分構(gòu)成

其中只有方法名和參數(shù)是唯一性標(biāo)識,意即只要方法名和參數(shù)相同那他們就是相同的方法

所謂參數(shù)相同江兢,是指參數(shù)的個數(shù)昨忆,類型,順序一致划址,其中任何一項(xiàng)不同都是不同的方法

何謂重載:

重載是指一個類里面(包括父類的方法)存在方法名相同扔嵌,但是參數(shù)不一樣的方法,參數(shù)不一樣可以是不同的參數(shù)個數(shù)夺颤、類型或順序

如果僅僅是修飾符痢缎、返回值、throw的異常 不同世澜,那這是2個相同的方法独旷,編譯都通不過,更不要說重載了

何謂覆蓋/重寫:覆蓋描述存在繼承關(guān)系時子類的一種行為

子類中存在和父類相同的方法即為覆蓋寥裂,何謂相同方法請牢記前面的描述嵌洼,方法名和參數(shù)相同,包括參數(shù)個數(shù)封恰、類型麻养、順序

覆蓋/重寫的規(guī)則:

子類不能覆蓋父類private的方法,private對子類不可見诺舔,如果子類定義了一個和父類private方法相同的方法鳖昌,實(shí)為新增方法

重寫方法的修飾符一定要大于被重寫方法的修飾符(public > protected > default > private)

重寫拋出的異常需與父類相同或是父類異常的子類备畦,或者重寫方法干脆不寫throws

重寫方法的返回值必須與被重寫方法一致,否則編譯報錯

靜態(tài)方法不能被重寫為非靜態(tài)方法许昨,否則編譯出錯


多態(tài)可以說是“一個接口懂盐,多種實(shí)現(xiàn)”或者說是父類的引用變量可以指向子類的實(shí)例,被引用對象的類型決定調(diào)用誰的方法糕档,但這個方法必須在父類中定義

多態(tài)可以分為兩種類型:編譯時多態(tài)(方法的重載)和運(yùn)行時多態(tài)(繼承時方法的重寫)莉恼,編譯時多態(tài)很好理解,后述內(nèi)容針對運(yùn)行時多態(tài)

運(yùn)行時多態(tài)依賴于繼承速那、重寫和向上轉(zhuǎn)型

向上轉(zhuǎn)型的缺憾:只能調(diào)用父類中定義的屬性和方法俐银,對于子類中的方法和屬性它就望塵莫及了,必須強(qiáng)轉(zhuǎn)成子類類型

總結(jié)概括:

當(dāng)超類對象引用變量引用子類對象時琅坡,被引用對象的類型而不是引用變量的類型決定了調(diào)用誰的成員方法悉患,但是這個被調(diào)用的方法必須是在超類中定義過的,也就是說被子類覆蓋的方法榆俺,但是它仍然要根據(jù)繼承鏈中方法調(diào)用的優(yōu)先級來確認(rèn)方法售躁,該優(yōu)先級為:this.show(O)、super.show(O)茴晋、this.show((super)O)陪捷、super.show((super)O)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市诺擅,隨后出現(xiàn)的幾起案子市袖,更是在濱河造成了極大的恐慌,老刑警劉巖烁涌,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件苍碟,死亡現(xiàn)場離奇詭異,居然都是意外死亡撮执,警方通過查閱死者的電腦和手機(jī)微峰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來抒钱,“玉大人蜓肆,你說我怎么就攤上這事∧北遥” “怎么了仗扬?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長蕾额。 經(jīng)常有香客問我早芭,道長,這世上最難降的妖魔是什么诅蝶? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任退个,我火速辦了婚禮精肃,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘帜乞。我一直安慰自己,他們只是感情好筐眷,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布黎烈。 她就那樣靜靜地躺著,像睡著了一般匀谣。 火紅的嫁衣襯著肌膚如雪照棋。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天武翎,我揣著相機(jī)與錄音烈炭,去河邊找鬼。 笑死宝恶,一個胖子當(dāng)著我的面吹牛符隙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播垫毙,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼霹疫,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了综芥?” 一聲冷哼從身側(cè)響起丽蝎,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎膀藐,沒想到半個月后屠阻,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡额各,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年国觉,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片臊泰。...
    茶點(diǎn)故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡蛉加,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出缸逃,到底是詐尸還是另有隱情针饥,我是刑警寧澤,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布需频,位于F島的核電站丁眼,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏昭殉。R本人自食惡果不足惜苞七,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一藐守、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蹂风,春花似錦卢厂、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至撵渡,卻和暖如春融柬,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背趋距。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工粒氧, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人节腐。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓外盯,卻偏偏與公主長得像,于是被迫代替她去往敵國和親翼雀。 傳聞我的和親對象是個殘疾皇子门怪,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評論 2 354

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