1.构建一个父类:
public class Father {
public String name=fa();
public String fa(){
System.out.println("父类的非静态变量");
return "zhangsan" ;
}
public static String sex="男";
static{
System.out.println("父类静态代码块"+sex);
}
{
System.out.println("父类实例代码块"+name);
}
public Father(){
System.out.println("父类构造函数");
}
}
2.构建一个子类:
public class Son extends Father{
//子类非静态的成员变量
public String name=So();
public String So(){
System.out.println("子类的非静态变量");
return "lisi" ;
}
public static String age="12";
static{
System.out.println("子类中静态代码块"+age);
}
{
System.out.println("子类当中的实例代码块"+name);
}
public Son(){
System.out.println("子类当中的构造函数");
}
public static void main(String[] args) {
Father Son=new Son();
}
}
3运行代码:
类的加载顺序是:
父类的静态成员变量
父类的静态代码块
子类的静态成员变量
子类的静态代码块
父类当中非静态成员变量
父类的实例代码块
子类的非静态变量
父类的构造函数
子类的实例代码块
子类的构造函数
如果只有一个类,顺序为
- 静态变量
- 静态代码块
- 非静态变量
- 构造函数