父类A
public class A {
private static final String a = "sa";
private int a1;
public A(){
System.out.println("构造函数 A init");
}
{
System.out.println("普通代码块 AA init");
}
static {
System.out.println("静态变量 "+a);
System.out.println("静态代码块 static a");
}public static String getA() {
return a;
}
}
子类B
public class B extends A{
private static final String b = "sb";
private int b1;
{
System.out.println("普通代码块 BB init");
}
static {
System.out.println("静态变量 "+b);
System.out.println("静态代码块 static b");
}
public B(){
System.out.println("构造函数 B init");
}public static String getB() {
return b;
}public int getB1() {
return b1;
}public void setB1(int b1) {
this.b1 = b1;
}
}
孙子类C
public class C extends B {
private static final String c = "sc";
private int c1;
static {
System.out.println("静态变量 "+c);
System.out.println("静态代码块 static c");
}
{
System.out.println("普通代码块 CC init");
}
public C(){
System.out.println("构造函数 C init");
}
public static void main(String[] args) {
System.out.println("main 函数开始.....");
C c = new C();
System.out.println(c.getC1());
System.out.println("main 函数结束.....");}
public static String getC() {
return c;
}public int getC1() {
return c1;
}public void setC1(int c1) {
this.c1 = c1;
}
}
测试结果
静态变量 sa
静态代码块 static a
静态变量 sb
静态代码块 static b
静态变量 sc
静态代码块 static c
main 函数开始.....
普通代码块 AA init
构造函数 A init
普通代码块 BB init
构造函数 B init
普通代码块 CC init
构造函数 C init
0
main 函数结束.....