1、首先加载的是父类静态变量,加载父类的静态代码块(一个类中多个静态代码块,按顺序加载)
2、加载子类静态变量,加载子类的静态代码块(一个类中多个静态代码块,按顺序加载)
3、加载父类非静态代码块
4、默认加载父类的无参构造(没有无参构造的话,需要在子类的构造方法第一行写super(参数))
5、加载子类的构造方法,
6、如果子类没有覆盖父类的方法,执行的时候是执行的是父类的方法
package text4;
/**
* 子类加载父类时候
* @author z2424
*/
public class son extends father{
static String name="加载子类静态变量";
static {
System.out.println("加载子类静态代码块");
}
son(){
super("1");
System.out.println("加载子类无参构造器");
}
son(String name1){
super("1");
System.out.println("加载子类有参构造器"+name);
}
@Override
void call(){
System.out.println("加载子类的普通方法"+name);
}
public static void main(String[] args) {
new son("1").call();
}
}
class father{
static String name="加载父类静态变量";
static {
System.out.println("加载父类静态代码块");
}
father(String name1){
System.out.println("加载父类有参构造器"+name);
}
void call(){
System.out.println("加载父类的普通方法"+name);
}
}