在以后所有開發(fā)過(guò)程中,絕對(duì)不要出現(xiàn)一個(gè)類去繼承一個(gè)已經(jīng)實(shí)現(xiàn)好的類。而只能繼承我們的抽象類與接口。
來(lái)源:對(duì)象的核心本質(zhì)在于我們的方法的覆寫上,如果說(shuō)子類沒(méi)有按照指定方法的覆寫上,這樣的操作就有不符合要求,所有要對(duì)子類的方法進(jìn)行強(qiáng)制要求,則出現(xiàn)抽象類
概念:抽象類在普通類的基礎(chǔ)上擴(kuò)充了一些抽象方法(指示)。所謂的抽象方法是申明,不實(shí)現(xiàn)(沒(méi)有方法體,沒(méi)有大括號(hào)),所有的抽象方法都使用abstract關(guān)鍵字來(lái)定義,抽象方法所在的類也要使用abstract定義類,表示抽象類
現(xiàn)在發(fā)現(xiàn)抽象類就是比普通類多了一些抽象方法而已。
使用:抽象類中包含有抽象方法,抽象方法中沒(méi)有方法體,就是不知道具體的方法,如果產(chǎn)生了實(shí)例化對(duì)象,則可以調(diào)用方法。抽象方法可以使用任意權(quán)限,盡量用public
抽象類的使用原則:1.所以的抽象類必須要有子類;抽象類中的子類(不是抽象類)必須覆寫抽象類的全部方法。抽象類的對(duì)象可以通過(guò)對(duì)象多態(tài)性,利用子類為其實(shí)例化。
抽象類的規(guī)則:抽象類中依然可以提供構(gòu)造方法,并且子類也會(huì)遵守子類實(shí)例化的流程,子類實(shí)例化之前一定會(huì)實(shí)例化父類構(gòu)造方
對(duì)象的實(shí)例化步驟:1.進(jìn)行類的加載2.進(jìn)行類對(duì)象的空間開辟3.進(jìn)行類對(duì)象的屬性初始化(構(gòu)造方法),所以如果構(gòu)造方法沒(méi)有執(zhí)行,那么對(duì)象的屬性一定就是對(duì)象數(shù)據(jù)所對(duì)應(yīng)的初始值
2.抽象類中允許不定義任何方法,仍然無(wú)法進(jìn)行實(shí)例化處理
3.抽象類不能使用final申明,因?yàn)槌橄箢惐仨氁凶宇?,抽象方法不能使用private定義,因?yàn)槌橄蠓椒ū仨氂米宇惛矊?/p>
4.抽象類分為內(nèi)部抽象類外部抽象類,內(nèi)部抽象類可以使用static定義,描述外部抽象類
抽象類最大特點(diǎn):是強(qiáng)制規(guī)定了子類的實(shí)現(xiàn),抽象類更多情況起到模板的作用,抽象類會(huì)定義一些固話的模式