更新時(shí)間:2020-07-17 16:23:33 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2392次
抽象類
1.抽象類的概念
普通類可以直接產(chǎn)生實(shí)例化對(duì)象,并且在普通類之中可以包含有構(gòu)造方法,普通方法、常量、變量等內(nèi)容。而所謂的抽象類就是指在普通類的結(jié)構(gòu)里面增加抽象方法的組成部分。
所有的普通方法上面都會(huì)有一個(gè)“{}”,該符號(hào)表示方法體,有方法體的方法一定可以被對(duì)象直接使用。而抽象方法指的是沒有方法體的方法,同時(shí)抽象方法還必須使用abstract關(guān)鍵字定義。
擁有抽象方法的類一定屬于抽象類,抽象類要使用abstract聲明。
抽象類不能實(shí)例化。(類一旦被實(shí)例化則就可以調(diào)用類中的方法或?qū)傩?,但是在抽象類中,沒有方法,所以抽象類就不能被實(shí)例化。)
抽象類的使用規(guī)則:
抽象類必須有子類。即:每一個(gè)抽象類要被子類所繼承。抽象類的子類(子類不是抽象類)必須要覆寫抽象類中所有的抽象方法、(一個(gè)子類只能繼承一個(gè)抽象類,單繼承)抽象類的實(shí)例化需要依靠子類完成,采用向上轉(zhuǎn)型的方法處理。抽象類的相關(guān)限制
(1)由于抽象類里面會(huì)存在一些屬性,那么在抽象類之中一定存在構(gòu)造方法,其目的是為屬性初始化。并且子類對(duì)象實(shí)例化的時(shí)候,依然滿足于先執(zhí)行父類構(gòu)造,再調(diào)用子類構(gòu)造的情況。
(2)抽象類不能夠使用final定義,因?yàn)槌橄箢惐仨氂凶宇悾鴉inal定義的類不能夠有子類。
(3)外部類不允許使用static聲明,而內(nèi)部的抽象類允許static聲明。使用static聲明的內(nèi)部抽象類就相當(dāng)于是一個(gè)外部抽象類,繼承的時(shí)候使用“外部類.內(nèi)部類”的形式表示類名稱。
(4)在任何情況下,如果要執(zhí)行類中的static方法的時(shí)候,都可以在沒有實(shí)例化對(duì)象的時(shí)候直接調(diào)用。對(duì)于抽象類也是一樣。
程序分析:
abstract?class?A?{
public?A(){//第二步
this.print();
}
public?abstract?void?print();
}
class?B?extends?A{
private?int?num?=?100;
public?B(int?num){
this.num?=?num;
}
public?void?print(){//第三步
System.out.print("num?=?"?+?num);
}
}
public?class?TestDemo{
public?static?void?main(String?args[]){
new?B(30);//第一步
}
}
程序輸出結(jié)果:num=0;
分析:
在任何一個(gè)類的構(gòu)造執(zhí)行完之前,所有屬性的內(nèi)容都是其對(duì)應(yīng)數(shù)據(jù)類型的默認(rèn)值。子類構(gòu)造方法之前,一定先執(zhí)行父類的構(gòu)造方法。
Java技術(shù)內(nèi)容
Java抽象類:http://www.ilovecolors.com.cn/tutorial_java_advance/609.html
以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“Java編程基礎(chǔ)之抽象類的學(xué)習(xí)”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743