JAVA各代码块的执行顺序

执行顺序

静态代码块 >>> 构造代码块 >>>> 构造方法(无参构造和有参构造)

静态代码块:只执行一次
构造代码块:每次new对象都要执行
构造方法:每次new对象都要执行

测试代码

//父类
public class Teacher {

    {
        System.out.println("执行父类构造代码块");
    }

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

    public Teacher(){
        System.out.println("执行父类无参构造方法");
    }

    public Teacher(String arg){
        System.out.println("执行父类有参构造方法");
    }

}

//子类
class Student extends Teacher{

    {
        System.out.println("执行子类构造代码块");
    }

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

    public Student(){
        System.out.println("执行子类无参构造方法");
    }

    public Student(String name){
        System.out.println("执行子类有参数构造方法");
    }

}

//测试类
class Test1 {
    public static void main(String[] args) {

        System.out.println("创建父类实例,不考虑继承情况");

        Teacher teacher1 = new Teacher();
        System.out.println("------------------------------------------------------");

        Teacher teacher2 = new Teacher("张三");
        System.out.println("------------------------------------------------------");

        System.out.println("创建子类实例,考虑继承情况");

        Student student1 = new Student();
        System.out.println("------------------------------------------------------");

        Student student2 = new Student();
        System.out.println("------------------------------------------------------");

        Student student3 = new Student("张四");


    }

}

执行结果

创建父类实例,不考虑继承情况
执行父类静态代码块
执行父类构造代码块
执行父类无参构造方法
------------------------------------------------------
执行父类构造代码块
执行父类有参构造方法
------------------------------------------------------
创建子类实例,考虑继承情况
执行子类静态代码块
执行父类构造代码块
执行父类无参构造方法
执行子类构造代码块
执行子类无参构造方法
------------------------------------------------------
执行父类构造代码块
执行父类无参构造方法
执行子类构造代码块
执行子类无参构造方法
------------------------------------------------------
执行父类构造代码块
执行父类无参构造方法
执行子类构造代码块
执行子类有参数构造方法



        太阳不会因为你的失意,明天不再升起。月亮不会因为你的抱怨,今晚不再降落。蒙住自己的眼睛,不等于世界就漆黑一团;蒙住别人的眼睛,不等于光明就属于自己!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值