更新時間:2020-07-07 16:01:17 來源:動力節(jié)點 瀏覽2498次
1.抽象類可以有構(gòu)造函數(shù)嗎?
答:可以
public?abstract?class?AbstractTest?{
?AbstractTest(){
?}
}
2.抽象類的構(gòu)造函數(shù)的作用?
答:初始化抽象類內(nèi)部聲明的通用變量,并被各種實現(xiàn)使用。
以下例子是抽象類中初始化了id,在默認(rèn)情況下,在調(diào)用子類的構(gòu)造函數(shù)前是先要調(diào)用基類的構(gòu)造函數(shù)的,這一點和非抽象的類一樣。
public?abstract?class?AbstractTest?{
?private?String?id;
?
?AbstractTest(){
?this.id?=?UUID.randomUUID().toString().replace("-",?"");
?}
?public?static?void?main(String[]?args){
?System.out.println("test");
?}
?public?String?getId()?{
?return?id;
?}
?public?void?setId(String?id)?{
?this.id?=?id;
?}
}
繼承類使用:
public?class?AbstractDemo?extends?AbstractTest{
?public?static?void?main(String[]?args){
?AbstractDemo?demo?=?new?AbstractDemo();
?System.out.println(JSON.toJSONString(demo));
?}
}
//輸出結(jié)果:{"id":"1b9190dbf7684fbe980347c2a0c6cb27"}
3.抽象類中是否可以有靜態(tài)的main方法?
答:可以
抽象類沒有對象概念所以不能被實例化.但可以定義屬性方法,其中屬性方法都可以是靜態(tài)的.靜態(tài)的意義其實就是在棧內(nèi)存中只有一個,所以該成員也會先于對象出現(xiàn)在內(nèi)存中,所以靜態(tài)并沒有違反抽象的原則.抽象類中可以定義靜態(tài)成員.
public?abstract?class?AbstractTest?{
?public?static?void?main(String[]?args){
?System.out.println("test");
?}
}
4.抽象類關(guān)鍵字abstract不可以和哪些關(guān)鍵字共存?
答:private、final、static
private:abstract是要子類去實現(xiàn)這個方法,而private修飾子類根本無法得到父類這個方法,互相矛盾。
final:被final修飾的類不能有子類,因為抽象方法后期需要被子類重寫,一旦加final無法重寫。
static:使用static我們就可以直接通過類名訪問抽象方法,由于抽象方法沒有方法體,所以無法實現(xiàn)。
5.抽象類中是否可以不定義抽象方法?
答:可以,這么做的目的是不讓其他類創(chuàng)建本類對象,交給子類完成。
6.Java抽象類可以實現(xiàn)接口嗎?它們需要實現(xiàn)所有的方法嗎?
答:可以。因為它們是抽象的,所以它們不需要實現(xiàn)所有的方法。
public?interface?InterfaceTest?{
?public?abstract?void?abstractTest();
?}
public?abstract?class?AbstractTest?implements?InterfaceTest{
? //可以不用實現(xiàn)方法
?}
以上就是動力節(jié)點java培訓(xùn)機構(gòu)的小編針對“編程基礎(chǔ)入門:java抽象類練習(xí)題”的內(nèi)容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。
相關(guān)閱讀
初級 202925
初級 203221
初級 202629
初級 203743