您的位置:首页 > 其它

静态块、动态块、构造函数、继承函数等的执行顺序

2016-12-28 22:05 204 查看
不涉及继承

静态代码块, 动态代码块 ,构造函数

package demo01;

public class Demo02 {

    public Demo02(){

        System.out.println("构造函数");

    }

    

    static{

        System.out.println("静态代码块");

    }

    

    {

        System.out.println("动态代码块");

    }

    

    

    

    public static void main(String[] args) {

        new Demo02();

        new Demo02();

    }

    

}

输出结果:

静态代码块

动态代码块

构造函数

动态代码块

构造函数

涉及继承

package demo01;

import org.junit.Test;

public class Demo02 {

    public static void main(String[] args) {

        Zi z = new Zi();

        System.out.println("---------------------");

        Zi z1 = new Zi();

    }

}

//父类

class Fu{

    

    public Fu(){

        System.out.println("父类构造函数");

    }

    

    static{

        System.out.println("父类静态代码块");

    }

    

    {

        System.out.println("父类动态代码块");

    }

}

//子类

class Zi extends Fu{

    

    public Zi(){

        System.out.println("子类构造函数");

    }

    

    static{

        System.out.println("子类静态代码块");

    }

    

    {

        System.out.println("子类动态代码块");

    }

    

    

    

}

输出结果:

父类静态代码块

子类静态代码块

父类动态代码块

父类构造函数

子类动态代码块

子类构造函数

---------------------

父类动态代码块

父类构造函数

子类动态代码块

子类构造函数

结论:

1.静态代码块只执行一次

2.静态的东西是属于类的,非静态的东西是属于实例的。 

3.静态的先执行,然后才是非静态的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  class 继承 函数
相关文章推荐