Java繼承時,父類中的this指向子類物件
程式碼如下
父類
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,在哪個類就指向哪個類的成員變數,成員變數沒有多型性