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();
}
}

解决方案 »

  1.   

    改成 bb s=this;就可以了
    因为 Object s=this;这样时,s在编译器看来只是一个Object对象而不是bb,所以它不存在num属性
      

  2.   

    没有把this附值给变量的,去看看this用法
    http://publish.it168.com/2005/0730/20050730028901.shtml
      

  3.   

    System.out.println(((bb)s).num);
    System.out.println(((aa)s).num);
      

  4.   

    this表示当前对象的应用 
    不能给this赋值