}
public class test extends Father
{
static//子类静态代码块
{
System.out.println("子类---静态代码块①");
}
public test() //子类构造方法
{
super();
System.out.println("子类---构造方法");
}
{ //子类构造代码块
System.out.println("子类---构造代码块 a");
}
static //子类静态代码块
{
int x=4;
int y=5;
System.out.println("子类---静态代码块②\tx="+x+" y="+y);
}
/*void get()//测试静态代码块中的成员是否为全局变量
{
System.out.println("x="+x);
System.out.println("y="+y);
}
*/
public static void main(String[] args)
{
new Father();
new test();
new test();
}
}
没创建对象直接编译运行时得到一下打印结果:
父类--静态代码块 ①
父类--静态代码块②
子类---静态代码块①
子类---静态代码块② x=4 y=5
当new几个对象后 new Father();
new test();
new test(); 得到一下打印结果:
父类--静态代码块 ①
父类--静态代码块②
子类---静态代码块①
子类---静态代码块② x=4 y=5
父类--构造代码块 A
父类--构造方法
父类--构造代码块 A
父类--构造方法
子类---构造代码块 a
子类---构造方法
父类--构造代码块 A
父类--构造方法
子类---构造代码块 a
子类---构造方法
去掉get()方法注释后 new test().get();
编译不通过:错误如下
test.java:50:
错误: 找不到符号
System.out.println("x="+x);
^
符号: 变量 x
位置: 类 test
test.java:51: 错误: 找不到符号
System.out.println("y="+y);
^
符号: 变量 y
位置: 类 test
2 个错误