zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    分化Oracle数据库日记文件(1)
    ORACLE稀有错误代码的阐发与经管(二)
    Oracle暗码文件的运用和维护
    在ORACLE中移动数据库文件
    ORACLE8的分区管理
    Oracle中如何间接运转OS号令(上)
    Oracle数据库平安计谋阐明 (三)
    Oracle7.X 回滚表空间数据文件误删除措置举动措施
    Oracle功用究极优化 中
    网络知识爆炸的年代~如何更好地学习吸收有用的知识
  • 原文地址:https://www.cnblogs.com/lijiehua/p/8242874.html
Copyright © 2011-2022 走看看