編程基礎(chǔ)入門:java抽象類練習題

編程基礎(chǔ)入門:java抽象類練習題

天津卓眾教育      2022-03-21 10:50:01     7

編程基礎(chǔ)入門:java抽象類練習題,1.抽象類可以有構(gòu)造函數(shù)嗎?答:可以public?abstract?class?AbstractTest?{?AbstractTest(){?}}2.抽象類的構(gòu)造函數(shù)的作用

課程價格 請咨詢

上課時段: 授課校區(qū):

詳細介紹

1.抽象類可以有構(gòu)造函數(shù)嗎?

答:可以

public?abstract?class?AbstractTest?{?AbstractTest(){?}}

2.抽象類的構(gòu)造函數(shù)的作用?

答:初始化抽象類內(nèi)部聲明的通用變量,并被各種實現(xiàn)使用。

以下例子是抽象類中初始化了id,在默認情況下,在調(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)方法?}

以上就是天津卓眾教育java培訓機構(gòu)的小編針對“編程基礎(chǔ)入門:java抽象類練習題”的內(nèi)容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。

培訓啦提醒您:交易時請核實對方資質(zhì),對于過大宣傳或承諾需謹慎!任何要求預付定金、匯款等方式均存在風險,謹防上當。