class Parent{}
class Child extends Parent{
public void display(){
System.out.println("Anything");
}
}
Class Main{
public static void main(String[] args){
Parent obj = new Child();
obj.display(); //error No function in Parent Class
}
}
爲什麼我們不能這樣做? obj有一個Child類型的對象,但仍然無法訪問顯示函數?Java多態性錯誤
你爲什麼推薦鑄造,而不是改變obj'的'類型'Child' ? –
這是一個關於多態性的問題。也許可能有其他代碼段,其中'obj = new Other();'其中Other也是Parent的子類。或者可能是一個'Parent obj [] = ...'數組,並且該數組將被填充各種子類。所以有合理的情況下演員是正確的選擇。 – FredK
我明白了!我錯了,因爲Object(Parent)和reference(Child)是不同的,所以Object只能訪問它自己的方法或覆蓋方法!至少在法律上是不能做到的! –