package com.example.mybatis.test;
public class TestExtendSequence {
public static void main(String[] args) {
new Son();
}
}
class Father{
static {
System.out.println("父类静态代码块初始化");
}
{
System.out.println("父类代码块初始化");
}
//初始化静态成员变量时调用静态方法,否则构造实例时静态方法不会被调用
private static String s = print();
private static String print() {
System.out.println("父类静态方法");
return "父类静态成员变量的初始化";
}
public Father(){
System.out.println("父类无参构造函数初始化完成");
show();
}
private void show() {
System.out.println("父类show方法");
}
}
class Son extends Father{
static {
System.out.println("子类静态代码块初始化");
}
{
System.out.println("子类代码块初始化");
}
private static int i=1;
private String s="子类私有成员变量";
public void show(){
System.out.println("子类show()方法,i="+i);
}
public Son(){
System.out.println("子类构造函数初始化完成");
show();
}
}
测试结果: