public class aa
{
int num=100;
}
class bb extends aa
{
int num=200;
void qq()
{
Object s=this;
System.out.println(s.num);//引处为什么把s换成this就可以了?s为什么不可以啊? }
public static void main(String args[])
{
System.out.println("hello,world");
bb t=new bb();
t.qq();
}
}
{
int num=100;
}
class bb extends aa
{
int num=200;
void qq()
{
Object s=this;
System.out.println(s.num);//引处为什么把s换成this就可以了?s为什么不可以啊? }
public static void main(String args[])
{
System.out.println("hello,world");
bb t=new bb();
t.qq();
}
}
因为 Object s=this;这样时,s在编译器看来只是一个Object对象而不是bb,所以它不存在num属性
http://publish.it168.com/2005/0730/20050730028901.shtml
System.out.println(((aa)s).num);
不能给this赋值