父类 子类 代码执行顺序

java 父类 子类 代码块 静态代码块 构造器执行顺序

废话不多说直接上代码

public class Father {
    String name;
    {
        System.out.println("父类代码块");
    }

    static {
        System.out.println("父类静态块");
    }

    public Father() {
        System.out.println("父类无参构造器");
    }

    public Father(String name) {
        this.name = name;
        System.out.println("父类有参构造器");
    }
}
public class Son extends Father {
    String name;
    {
        System.out.println("子类代码块");
    }

    static {
        System.out.println("子类静态块");
    }

    public Son(){
        System.out.println("子类无参构造器");
    }

    public Son(String name) {
        this.name = name;
        Father father = new Father(name);
        System.out.println("子类有参构造器");
    }

    public static void main(String[] args) {
        new Son("张三");
    }
}

结果:

父类静态块
子类静态块
父类代码块
父类无参构造器
子类代码块
父类代码块
父类有参构造器
子类有参构造器

分析:
1 父类静态代码块
2 子类静态代码块
3 父类代码块 第一次 new Father() 前(说明,每次实例化类执行)
4 父类无参构造器 new Father() 执行方法
5 子类代码块 new Son(name) 前
6 父类代码块 第二次 new Father(name) 前
7 父类有参构造器 执行构造器 执行方法
8 子类有参构造器 执行构造器 执行方法

欢迎拍砖。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值