代码如下
父类
public class Car {
public void fool() {
System.out.println("Car:fool1");
}
public void foo2() {
this.fool();
System.out.println("Car:fool2");
}
}
子类
public class RedCar extends Car {
@Override
public void fool() {
// TODO Auto-generated method stub
System.out.println("RedCar:fool1");
}
@Override
public void foo2() {
// TODO Auto-generated method stub
System.out.println("RedCar:fool2");
super.foo2();
}
}
测试类
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
RedCar redCar = new RedCar();
redCar.foo2();
}
}
输出结果。
RedCar:fool2
RedCar:fool1
Car:fool2
原因分析:
继承时,对于方法覆盖时,new的谁,this,就指向谁,多态性决定,,如果是成员变量,this,在哪个类就指向哪个类的成员变量,成员变量没有多态性