日期:2014-05-20  浏览次数:20676 次

父类和子类定义了同名的属性当父类的引用指向子类的对象时,调用该对象的该属性,得到的是父类的属性?!!!
Java code
class Test{

public static void main(String[] args){
   First s = new Second();
   System.out.println(s.var);
   System.out.println(s.var);
  }
}

class First {
    int var =1;
    int method(){
         return var;
}
}

class Second extends   First {
    int var =2;
    int method(){
         return var;
}
}


------解决方案--------------------
不同意一楼的说法,在子类对父类的继承中,继承而来的只是方法,属性是继承不了父类的,不信的话可以写个例子打印出来验证一下就行了,其实想一下就会知道,方法是继承而来的,属性可以继承的话,那还要子类干嘛,直接就用父类就行了,子类继承方法是为了用父类的方法既有的规则来按照自己的需求完成特定的工作,这其中就包括使用自己的属性,所以一句话,属性是继承不了父类的