// 静态变量 public static PrintStr2 a=new PrintStr2("子类--静态变量");
// 变量 public PrintStr2 b=new PrintStr2("子类--实例变量"); // 静态初始化块 static { new PrintStr2("子类--静态初始化块(主动执行)"); }
// 构造器 public InitClass2() { new PrintStr2("子类--构造器");
}
public void callParentStaticMethod(){ Parent2.printString(this.getClass().getName()+"callParentStaticMethod()方法 "); }
// 程序入口 public static void main(String[] args) { Parent2.printString(" InitClass类 main() 方法"); new PrintStr2("子类--进入程序入口 (静态方法) InitClass main()"); new PrintStr2("子类--开始实例化 new InitClass()"); new InitClass2().callParentStaticMethod(); }
} class Parent2 {
// 静态初始化块 static { new PrintStr2("父类--静态初始化块(主动执行)"); }
public static String str="父类--静态方法被调用前加载完成的静态变量";
// 静态变量 public static PrintStr2 c=new PrintStr2("父类--静态变量");
// 变量 public PrintStr2 d=new PrintStr2("父类--实例变量");
// 初始化块 { new PrintStr2("父类--初始化块"); }
// 构造器 public Parent2() { new PrintStr2("父类--构造器"); }
public static void printString(String s){ new PrintStr2("父类--静态方法(被"+s+"调用执行)." ); new PrintStr2( "父类--静态方法调用自己的静态变量:str="+Parent2.str ); }
}
class PrintStr2{
private static int i=0; static { Parent2.printString("PrintStr2 类静态块"); } public static int getCount(){ return i++; }