更新時間:2020-07-07 16:01:17 來源:動力節點 瀏覽2644次
1.抽象類可以有構造函數嗎?
答:可以
public?abstract?class?AbstractTest?{
?AbstractTest(){
?}
}
2.抽象類的構造函數的作用?
答:初始化抽象類內部聲明的通用變量,并被各種實現使用。
以下例子是抽象類中初始化了id,在默認情況下,在調用子類的構造函數前是先要調用基類的構造函數的,這一點和非抽象的類一樣。
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));
?}
}
//輸出結果:{"id":"1b9190dbf7684fbe980347c2a0c6cb27"}
3.抽象類中是否可以有靜態的main方法?
答:可以
抽象類沒有對象概念所以不能被實例化.但可以定義屬性方法,其中屬性方法都可以是靜態的.靜態的意義其實就是在棧內存中只有一個,所以該成員也會先于對象出現在內存中,所以靜態并沒有違反抽象的原則.抽象類中可以定義靜態成員.
public?abstract?class?AbstractTest?{
?public?static?void?main(String[]?args){
?System.out.println("test");
?}
}
4.抽象類關鍵字abstract不可以和哪些關鍵字共存?
答:private、final、static
private:abstract是要子類去實現這個方法,而private修飾子類根本無法得到父類這個方法,互相矛盾。
final:被final修飾的類不能有子類,因為抽象方法后期需要被子類重寫,一旦加final無法重寫。
static:使用static我們就可以直接通過類名訪問抽象方法,由于抽象方法沒有方法體,所以無法實現。
5.抽象類中是否可以不定義抽象方法?
答:可以,這么做的目的是不讓其他類創建本類對象,交給子類完成。
6.Java抽象類可以實現接口嗎?它們需要實現所有的方法嗎?
答:可以。因為它們是抽象的,所以它們不需要實現所有的方法。
public?interface?InterfaceTest?{
?public?abstract?void?abstractTest();
?}
public?abstract?class?AbstractTest?implements?InterfaceTest{
? //可以不用實現方法
?}
以上就是動力節點java培訓機構的小編針對“編程基礎入門:java抽象類練習題”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習