第三章②抽象類

類、構造器、屬性、方法

抽象的使用

就是父類無法全部具體實現(xiàn),而是由子類提供具體實現(xiàn)的,對象的,類

abstract:抽象的,可以用來修飾類、方法

abstract修飾類(抽象類)

①不可被實例化

②抽象類有構造器(凡是類都有構造器,為了保證創(chuàng)建類的時候有實例化的過程)

abstract修飾方法(抽象方法)

①格式?jīng)]有方法體、沒有{}。例如public abstract void eat();

②抽象方法只保留方法的功能,具體的執(zhí)行,交給繼承抽象類的子類,由子類重寫此抽象方法

③抽象方法所在的類一定是抽象類

④抽象類可以沒有抽象方法

⑤若子類繼承抽象類,重寫了所有的抽象方法:此類就能實例化,創(chuàng)建對象

⑥若子類繼承抽象類,沒有重寫所有的抽象方法:此類中仍然有抽象方法,則此類必須聲明為抽象的,那么此類就不能實例化,創(chuàng)建對象

⑦不影響多態(tài)的使用,還是調(diào)用子類的方法

抽象類的子類如果沒有重寫抽象類中的任何一個方法,那么這個子類必須也是抽象類,因為抽象方法所在的類必須是抽象類,否則不滿足抽象規(guī)則。要么重寫方法,要么定義抽象類。因為子類繼承了父類,子類可以調(diào)用父類非私有的方法,這一調(diào)用就調(diào)用到抽象方法上了。


抽象類:是在繼承基礎上衍生出來的,有繼承才有抽象,光抽象沒什么用

多態(tài):也是在繼承基礎上衍生出來的,將子類賦給父類,用父類對象調(diào)用子類的方法

注意

abstract不能修飾:屬性、構造器

屬性

①規(guī)定不讓用

②這是一種思想,抽象的目的①對于類來講,不能讓此類實例化②對于方法來講,讓子類重寫(子類可以覆蓋)。

③屬性不能覆蓋,子類用子類的,父類用父類的,都存在堆空間

構造器

①因為構造器不能重寫

abstract不能和private、final、static共用

private:私有的,出了類就能訪問,子類不能覆蓋(或重寫)聲明為private的方法

final:最終的,不能被重寫,而abstract又需要子類重寫父類的方法

static:可以修飾屬性、方法、代碼塊、內(nèi)部類

因為一個聲明為靜態(tài)的就可以通過類來調(diào)用,而abstract修飾的不能調(diào)用

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容