2020-03-06繼承

子類 extends 父類? ?所屬關(guān)系 is a?

提高代碼復(fù)用性;讓類與類之間產(chǎn)生關(guān)系集畅,多態(tài)特性近弟; 一般只支持單繼承,Java支持多層繼承挺智;

具體調(diào)用時(shí)要?jiǎng)?chuàng)建最子類的對(duì)象祷愉,因?yàn)楦割惪赡懿荒軇?chuàng)建對(duì)象,子類對(duì)象可以使用更多的功能赦颇。查閱父類功能二鳄,創(chuàng)建子類對(duì)象使用功能


super超,指超類媒怯,相對(duì)于this订讼,對(duì)父類的引用。

原理:方法區(qū)里子類內(nèi)存除了this 引用扇苞,還有super引用欺殿。

父類子類同名函數(shù):也叫重寫寄纵,子類對(duì)象調(diào)用函數(shù)時(shí),會(huì)運(yùn)行子類函數(shù)的內(nèi)容脖苏,父類函數(shù)被覆蓋擂啥,但是還在方法區(qū)。重寫是面向?qū)ο蟮?/b>

原則:不要修改以前繼承的源碼帆阳,可以新建類繼承并升級(jí)代碼

**注意:子類覆蓋父類哺壶,必須保證子類權(quán)限大于等于父類權(quán)限,否則編譯失斞寻山宾;靜態(tài)不能覆蓋非靜態(tài)(存在加載先后問(wèn)題,因?yàn)殪o態(tài)在棧內(nèi)存加載前就被加載了)鳍徽。如果父類是private,就不能說(shuō)是重寫了资锰,因?yàn)樽宇惗紵o(wú)法知道父類的函數(shù)。

重載不同重寫阶祭,重寫父子類方法要一模一樣(多態(tài)中參數(shù)類型有關(guān)系)绷杜。不允許繼承中有同名但不同的方法。



子父類中的構(gòu)造函數(shù):子類對(duì)象初始化時(shí)濒募,父類的構(gòu)造函數(shù)也會(huì)運(yùn)行鞭盟,會(huì)訪問(wèn)父類空參數(shù)的構(gòu)造函數(shù)。

子類構(gòu)造函數(shù)(所有構(gòu)造函數(shù))有一條隱式的在第一行的語(yǔ)句:super();調(diào)用父類(無(wú)參數(shù)的)構(gòu)造函數(shù)瑰剃。所以第一行必須是super或者this齿诉。

如果父類中定義了特定的構(gòu)造函數(shù)(不是空參數(shù)),那么子類的構(gòu)造函數(shù)中必須要顯式地添加父類的構(gòu)造函數(shù)晌姚。

父類調(diào)用完的內(nèi)容粤剧,子類可以直接用,不用重寫例如:super(name)

*為什么子類一定要訪問(wèn)父類的構(gòu)造函數(shù)挥唠?

子類可以直接獲取父類數(shù)據(jù)抵恋,并且需要知道父類對(duì)數(shù)據(jù)進(jìn)行初始化的動(dòng)作(在構(gòu)造函數(shù)中),所以子類要先訪問(wèn)一下父類的構(gòu)造函數(shù)宝磨。

結(jié)論(子類的實(shí)例化過(guò)程):

1.子類中所有的構(gòu)造函數(shù)默認(rèn)都會(huì)訪問(wèn)父類中空參數(shù)的構(gòu)造函數(shù)(super();)

2.如果父類中沒(méi)有空參數(shù)的構(gòu)造函數(shù)時(shí)弧关,子類必須手動(dòng)通過(guò)super語(yǔ)句訪問(wèn)指定的父類構(gòu)造函數(shù)

3.也可以通過(guò)手動(dòng)指定this語(yǔ)句訪問(wèn)本誒構(gòu)造函數(shù)(因此子類中至少會(huì)有一個(gè)構(gòu)造函數(shù)訪問(wèn)父類中的構(gòu)造函數(shù))

this、super兩者語(yǔ)句都必須在第一行


final 可以修飾類懊烤、函數(shù)梯醒、變量

1.被final修飾的不可以被繼承腌紧,弊端:打破了封裝性茸习。

2.被final修飾的方法不可以被復(fù)寫

3.被final修飾的變量只能賦值一次壁肋,既可以修飾成員變量号胚,也可以修飾局部變量(常量)籽慢。

為了避免某些調(diào)用底層的方法被繼承,被子類復(fù)寫功能猫胁。

后面會(huì)講:內(nèi)部類定義在類中的局部位置時(shí)箱亿,只能訪問(wèn)該局部final修飾的成員變量。

目前類修飾的關(guān)鍵字有 public弃秆、final


抽象類

當(dāng)多個(gè)類中出現(xiàn)相同功能届惋,但功能主體不同。這時(shí)可以向上抽取菠赚,只抽取功能定義脑豹,不抽取功能主體:abstract void study();(這個(gè)方法沒(méi)有方法體)這個(gè)類必須存放在抽象類中:abstract class ***,不可以在這個(gè)類上建立對(duì)象。

特點(diǎn):

1.抽象方法一定在抽象類中衡查;

2.抽象方法和類都必須被abstract修飾

3.抽象類 不可以用new創(chuàng)建對(duì)象瘩欺,因?yàn)檎{(diào)用的方法沒(méi)有方法體,如果是void study (){}就可以(類和方法無(wú)abstract修飾)

4.抽象類的方法要使用拌牲,必須要由子類復(fù)寫其功能并建立對(duì)象調(diào)用俱饿。**如果子類繼承了父類但只是重寫了父類的部分抽象方法,那么子類還是一個(gè)抽象類塌忽,子類需要加上abstract修飾符拍埠。

抽象父類強(qiáng)制子類復(fù)寫抽象方法。

抽象類中可以沒(méi)有抽象方法砚婆,但這樣僅僅是不讓這個(gè)類建立對(duì)象械拍。


抽象類和一般類的不同:

1.描述事物相同,只不過(guò)事物中出現(xiàn)抽象方法装盯,無(wú)法定義主題,需要在子類主體重明確出現(xiàn)甲馋。功能不確定的放到子類去做埂奈;

2.抽象類不可以實(shí)例化;*********6铩U嘶恰!


獲取時(shí)間:System.currentTimeMillis();API中查找痊远。

把程序代碼單獨(dú)放在一個(gè)方法中進(jìn)行封裝(或者在不確定的時(shí)候抽象)垮抗,建立子類對(duì)象,但是在子類中對(duì)不同的程序代碼進(jìn)行復(fù)寫.直接調(diào)用子類方法即可碧聪。

為了不讓獲取時(shí)間的方法被復(fù)寫冒版,所以對(duì)方法用final復(fù)寫逆趋。

模板方法:有一部分是確定的舒岸,一部分的不確定的。不確定的部分暴露出去(不一定抽象),由子類去完成岩梳。


接口interface:抽象類中都是抽象方法。該類可以通過(guò)接口的形式表示,不可創(chuàng)建對(duì)象闯袒。擴(kuò)展功能波材。

class 是定義類? interface是定義接口

格式:interface 接口名{}

常見(jiàn)定義:常量,抽象方法挺狰。


接口中的成員都有固定修飾符:

常量public static final(會(huì)在interface中自動(dòng)加上)

方法public abstract


class 類名 implements 接口(子類要將接口的全部抽象方法都實(shí)現(xiàn)才能實(shí)例化明郭,否則這個(gè)類就是abstract。并且權(quán)限都要是public)

接口可以被類多實(shí)現(xiàn)丰泊,也是對(duì)多繼承不支持的轉(zhuǎn)換形式达址。Java支持多實(shí)現(xiàn)。因?yàn)榻涌谥械姆椒从蟹椒w趁耗。

一個(gè)類繼承了父類之后還能多實(shí)現(xiàn)接口沉唠。


接口與接口之間的關(guān)系:繼承 extends。接口之間支持多繼承苛败,但是不能有返回不同類型的同名方法满葛。

結(jié)論:將共性定義在類中,擴(kuò)展功能(體系外)定義在接口中

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末罢屈,一起剝皮案震驚了整個(gè)濱河市嘀韧,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌缠捌,老刑警劉巖锄贷,帶你破解...
    沈念sama閱讀 219,539評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異曼月,居然都是意外死亡谊却,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門哑芹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)炎辨,“玉大人,你說(shuō)我怎么就攤上這事聪姿〔晗簦” “怎么了?”我有些...
    開封第一講書人閱讀 165,871評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵末购,是天一觀的道長(zhǎng)破喻。 經(jīng)常有香客問(wèn)我,道長(zhǎng)盟榴,這世上最難降的妖魔是什么曹质? 我笑而不...
    開封第一講書人閱讀 58,963評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上咆繁,老公的妹妹穿的比我還像新娘讳推。我一直安慰自己,他們只是感情好玩般,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評(píng)論 6 393
  • 文/花漫 我一把揭開白布银觅。 她就那樣靜靜地躺著,像睡著了一般坏为。 火紅的嫁衣襯著肌膚如雪究驴。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,763評(píng)論 1 307
  • 那天匀伏,我揣著相機(jī)與錄音洒忧,去河邊找鬼。 笑死够颠,一個(gè)胖子當(dāng)著我的面吹牛熙侍,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播履磨,決...
    沈念sama閱讀 40,468評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼蛉抓,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了剃诅?” 一聲冷哼從身側(cè)響起巷送,我...
    開封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎矛辕,沒(méi)想到半個(gè)月后笑跛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,850評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡聊品,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評(píng)論 3 338
  • 正文 我和宋清朗相戀三年飞蹂,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片杨刨。...
    茶點(diǎn)故事閱讀 40,144評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡晤柄,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出妖胀,到底是詐尸還是另有隱情,我是刑警寧澤惠勒,帶...
    沈念sama閱讀 35,823評(píng)論 5 346
  • 正文 年R本政府宣布赚抡,位于F島的核電站,受9級(jí)特大地震影響纠屋,放射性物質(zhì)發(fā)生泄漏涂臣。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望赁遗。 院中可真熱鬧署辉,春花似錦、人聲如沸岩四。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)剖煌。三九已至材鹦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間耕姊,已是汗流浹背桶唐。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留茉兰,地道東北人尤泽。 一個(gè)月前我還...
    沈念sama閱讀 48,415評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像规脸,于是被迫代替她去往敵國(guó)和親坯约。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評(píng)論 2 355

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