java面试总结03_代码执行顺序

在面试时候,经常会让做面试题,让写出最后的执行结果。其实最要就是把我一下几点:

一:先父类后子类

二:如果子类和父类中有静态代码之类,先父类执行静态,子类执行静态,然后,父类的构造代码块,构造方法,然后在子类的构造代码块,构造方法!

1、静态代码块(静态区、静态变量等) 
2、构造代码块({ }中间的内容) 
3、构造方法

注意:静态代码块只执行一次,一次,一次,重要事情说三遍!

举个例子:

public class User {

    static {
        System.out.println("父类静态代码块.....");
    }
    {
        System.out.println("父类普通代码块.....");
    }
    public User(){
        System.out.println("父类构造方法.....");
    }
}

public class GirlUser extends User {

    static {
        System.out.println("....子类静态代码块.....");
    }
     {
        System.out.println("....子类普通代码块.....");
    }
    public GirlUser(){
        System.out.println("....子类g构造方法.....");
    }
}

 public static void main(String[] args) {
        System.out.println("****第一次实例化对象***********");
        GirlUser girlUser=new GirlUser();
        System.out.println("*****第二次实例化对象**********");
        GirlUser girlUser2=new GirlUser();
    }

执行结果:

****第一次实例化对象***********
父类静态代码块.....
....子类静态代码块.....
父类普通代码块.....
父类构造方法.....
....子类普通代码块.....
....子类g构造方法.....
*****第二次实例化对象**********
父类普通代码块.....
父类构造方法.....
....子类普通代码块.....
....子类g构造方法.....
发布了23 篇原创文章 · 获赞 3 · 访问量 6858

猜你喜欢

转载自blog.csdn.net/weixin_41834814/article/details/82774404