2018/01/08JAVA 基础 / 接口与继承:[Q]:若父类Hero提供了一个有参的构造方法,但是没有提供无参的构造方法。子类应该怎么处理?...
生活随笔
收集整理的這篇文章主要介紹了
2018/01/08JAVA 基础 / 接口与继承:[Q]:若父类Hero提供了一个有参的构造方法,但是没有提供无参的构造方法。子类应该怎么处理?...
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
在子類中實例化一個ADHero(), 如下第10~13行:
1 package charactor; 2 3 public class ADHero extends Hero implements AD{ 4 5 @Override 6 public void physicAttack() { 7 System.out.println("進行物理攻擊"); 8 } 9 10 public ADHero(){ 11 12 System.out.println("AD Hero的構造方法"); 13 } 14 15 public static void main(String[] args) { 16 17 new ADHero(); 18 19 } 20 21 }?
再在主方法中通過實例化,其構造方法會被調用。其父類的構造方法也會被調用 ,并且是父類構造方法先調用 ,子類構造方法會默認調用父類的無參的構造方法
?
[Q]:若父類Hero提供了一個有參的構造方法,但是沒有提供無參的構造方法。子類應該怎么處理?以下是父類的有參構造方法:
1 public Hero(String name){ 2 this.name = name; 3 }?
[A]:由于作為子類,無論如何?都會調用父類的構造方法。默認情況下,會調用父類的無參的構造方法。?但是,當父類沒有無參構造方法的時候( 提供了有參構造方法,并且不顯示提供無參構造方法),子類就會拋出異常,因為它嘗試去調用父類的無參構造方法。
這個時候,子類應該必須通過super去調用父類聲明的,存在的,有參的構造方法。
1 package charactor; 2 3 public class ADHero extends Hero implements AD{ 4 public ADHero() { 5 super("");//super("")調用的是父類的有參構造方法Hero(String name); 6 } 7 8 @Override 9 public void physicAttack() { 10 System.out.println("進行物理攻擊"); 11 } 12 }?
轉載于:https://www.cnblogs.com/lijiehua/p/8242874.html
總結
以上是生活随笔為你收集整理的2018/01/08JAVA 基础 / 接口与继承:[Q]:若父类Hero提供了一个有参的构造方法,但是没有提供无参的构造方法。子类应该怎么处理?...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 引入mui后,radio单选框不可点击问
- 下一篇: 【压力测试】Jmeter基础3