在面试时候,经常会让做面试题,让写出最后的执行结果。其实最要就是把我一下几点:
一:先父类后子类
二:如果子类和父类中有静态代码之类,先父类执行静态,子类执行静态,然后,父类的构造代码块,构造方法,然后在子类的构造代码块,构造方法!
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构造方法.....