06.继承中的构造方法执行顺序

继承中构造方法的执行顺序

  • A:super(实参列表);语句 在子类的构造方法中使用,用来调用父类中的构造方法(具体哪一个由传递的参数决定),并且只能在构造方法第一行使用
  • B:this(实参列表); 语句 在类的构造方法中使用,用来调用本类中的其它构造方法(具体哪一个由传递的参数决定),并且只能在构造方法的第一行使用
package com.itheima;
/*
 * 继承中构造方法的执行顺序
 *          在有子父类继承关系的类中,创建子类的对象,调用子类的构造方法,
 *          如果子类构造方法的第一行没有调用父类的构造方法,则会默认调用父类的无参构造(※注意:第一行不算注释)
 *          肯定会先执行父类的构造,因为要先给父类的成员变量进行初始化,子类可能会使用到
 * 为什么要调用父类构造?
 *          因为需要给父类的成员变量初始化
 * 
 * 我们可以使用super()在构造方法的第一行调用父类的构造方法
 * 
 * 我是父类无参构造 --- 我是子类有参构造 --- 我是子类无参构造
 */
public class ExtendsDemo6 {
    public static void main(String[] args) {
//      Die d = new Die();
        Zi z = new Zi();
    }
}

class Die {
    public Die() {
        System.out.println("我是父类无参构造");
    }
    
    public Die(int num) {
        System.out.println("我是父类有参构造");
    }
}

class Zi extends Die {
    public Zi() {
//      super(1);
        this(2);//不会再调用父类的无参构造了
        System.out.println("我是子类无参构造");
    }
    
    public Zi(int num) {
//      super();    //会默认调用父类无参构造
        System.out.println("我是子类有参构造");
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 函数和对象 1、函数 1.1 函数概述 函数对于任何一门语言来说都是核心的概念。通过函数可以封装任意多条语句,而且...
    道无虚阅读 4,961评论 0 5
  • 师出有名阅读 160评论 0 0
  • 文件上传用例 1.文件名检查 a.符合文件命名规范:文件命名规范、命名长度、格式、大小都符合要求的文件 b.不符合...
    太阳的后裔90阅读 445评论 0 0
  • 纯想即飞,纯情即堕
    66bcb2657196阅读 192评论 0 0
  • 今天完成了连续4天的每天至少2万步,已经明显感受到了左腿关节处的疼痛感,大叹自己身体的脆弱。好在,还是坚持到了...
    瀑下顽石阅读 294评论 0 4

友情链接更多精彩内容