初学,困惑中
public class ShadowTest2
{
public static void main(String argv[])
{
A a = new A();
B b = new B(); System.out.println("a.i = "+a.i);
System.out.println("b.i = "+b.i);
}
}class A
{
int i=10; public A()
{
System.out.println(i);
}
}class B extends A
{
int i=5;

public B()
{
System.out.println(i);
}
}
结果是10
      10
      5
      a.i=10
      b.i=5
public class ShadowTest2c
{
public static void main(String argv[])
{
A a = new A();
B b = new B(); System.out.println("a.i = "+a.i);
System.out.println("b.i = "+b.i);
}
}class A
{
int i=10; public A()
{
super();
}
}class B extends A
{
int i=5;

public B()
{
System.out.println(i);
}
}
结果是10
      10
      a.i=10
      b.i=5
问题:
1.ShadowTest2.java结果中第二个10是怎么得出的
2.ShadowTest2c.java结果中为什么只有二个10
谢谢