当前位置:
首页 >
2018/01/08JAVA 基础 / 接口与继承:[Q]:若父类Hero提供了一个有参的构造方法,但是没有提供无参的构造方法。子类应该怎么处理?...
发布时间:2025/3/15
32
豆豆
生活随笔
收集整理的这篇文章主要介绍了
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