class Base { public int a; Base(){a=4;} public void run() { System.out.println(a); } }class Sub extends Base { public int a ; //(1) Sub(){a=9;} @override public void run() { System.out.println(a); //(2)怎么理解此处的a,如果把(1)注释掉呢 } } public class Test { public static void main(String[] args) { Base b =new Sub(); b.run(); } }
{
public int a;
Base(){a=4;}
public void run()
{
System.out.println(a);
}
}class Sub extends Base
{
public int a ; //(1)
Sub(){a=9;}
@override
public void run()
{
System.out.println(a); //(2)怎么理解此处的a,如果把(1)注释掉呢
}
}
public class Test
{
public static void main(String[] args)
{
Base b =new Sub();
b.run();
}
}
int a=8; // (3)
System.out.println(a); // (2)怎么理解此处的a,如果把(1)注释掉呢
}我给你增加了一个(3)
访问,都是从离自己最近的开始,如果找不到才是更远的,比如
1 本方法内,或者代码段内
2 本类内
3 父类或超类