普通類可以直接產(chǎn)生實(shí)例化對(duì)象,并且在普通類之中可以包含有構(gòu)造方法、普通方法、static方法、常量、變量的內(nèi)容。而所謂的抽象類就是指在普通類的結(jié)構(gòu)里面增加抽象方法的組成部分,抽象方法指的是沒有方法體的方法,同時(shí)抽象方法還必須使用abstract關(guān)鍵字進(jìn)行定義。擁有抽象方法的類一定屬于抽象類,抽象類要使用abstract聲明。
定義抽象類
Ø 此時(shí)抽象類已經(jīng)被成功的定義出來,但是如果要想使用抽象類則必須遵守如下原則:
Ø 抽象類必須有子類,即:每一個(gè)抽象類一定要被子類所繼承(使用extends關(guān)鍵字),但是在Java中每一個(gè)子類只能夠繼承一個(gè)抽象類,所以具備有單繼承局限;
Ø 抽象類的子類(子類不是抽象類)必須覆寫抽象類之中的全部抽象方法(強(qiáng)制子類覆寫);
Ø 抽象類的對(duì)象實(shí)例化需要依靠子類完成,采用向上轉(zhuǎn)型的方式處理
正確使用抽象類
抽象類的相關(guān)限制
Ø 抽象類里面由于會(huì)存在一些屬性,那么在抽象類之中一定會(huì)存在構(gòu)造方法,目的:為屬性初始化,并且子類對(duì)象實(shí)例化的時(shí)候依然滿足于先執(zhí)行父類構(gòu)造,再調(diào)用子類構(gòu)造的情況。
Ø 抽象類不能夠使用final定義:因?yàn)槌橄箢惐仨氂凶宇悾鴉inal定義的類不能夠有子類;
Ø 抽象類中可以沒有任何抽象方法,但是只要是抽象類,那么依然不能夠直接使用關(guān)鍵字new實(shí)例化對(duì)象。
Ø 抽象類中依然可以定義內(nèi)部的抽象類,而實(shí)現(xiàn)的子類也可以根據(jù)需要選擇是否定義內(nèi)部類來繼承抽象內(nèi)部類。
Ø 外部抽象類不允許使用static聲明,而內(nèi)部的抽象類允許使用static聲明,使用static聲明的內(nèi)部抽象類就相當(dāng)于是一個(gè)外部抽象類,繼承的時(shí)候使用“外部類.內(nèi)部類”的形式表示類名稱。
Ø 抽象類中,如果定義有static屬性或方法的時(shí)候,都可以在沒有對(duì)象的時(shí)候直接調(diào)用。
Java技術(shù)相關(guān)內(nèi)容
Java抽象類:http://www.bjpowernode.com/tutorial_java_advance/609.html
以上就是長沙牛耳教育java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“編程技術(shù)分享,Java中抽象類”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。