public
class
Test
...
{
public static void main(String[] args)
...{
new Child();
}
}
class Parent
... {
private int aintanceInt = 30;
static ...{
System.out.println("Parent ");
}
public void test()
...{
}
public Parent()
...{
test();
}
public static void main(String[] args)
...{
new Child();
}
}
class Child extends Parent
... {
private int instanceValue = 20;
static ...{
System.out.println("child");
}
public Child() ...{
}
public void test()
...{
System.out.println("instance value is: " + instanceValue);
}
}
public static void main(String[] args)
...{
new Child();
}
}
class Parent
... {
private int aintanceInt = 30;
static ...{
System.out.println("Parent ");
}
public void test()
...{
}
public Parent()
...{
test();
}
public static void main(String[] args)
...{
new Child();
}
}
class Child extends Parent
... {
private int instanceValue = 20;
static ...{
System.out.println("child");
}
public Child() ...{
}
public void test()
...{
System.out.println("instance value is: " + instanceValue);
}
}
这段代码打印的结果是
parent child instance alue is 0
java面向对象初始话的顺序分为横向 static —》field默认初始化 —》构造函数 —》field赋值
纵向是基类 —》子类
打印出0 因为java基于面向对象的思想 访问基类parent方法时 已经生成child实例