class?Base?{
public?void?method(){
System.out.print?("Base?method");
}
}
class?Child?extends?Base{?
public?void?methodB(){
System.out.print?("Child?methodB");
}
}
class?Sample?{
public?static?void?main(String[]?args)?{
Base?base=?new?Child();
base.methodB();
}
}
請問這題哪里有錯誤,關于父類和子類的調用到底是怎么樣的?求大神指教~
2 回答

dky
TA貢獻93條經驗 獲得超26個贊
超人有人類的所有功能,所有人類都可以像超人那樣飛么? extends,很多人都把他稱為繼承,它本來的意思是拓展,拓展什么意思 ,就是拓展了一些新增加的功能。舉個例子,有個叫杰克的超人,在人群中只有我知道,看上去,杰克就是個普通人。然后,我說,杰克你是超人,你飛起來。假設杰克很聽話,然后脫去外衣露出s標志(強制轉換),?(Child)base.methodB();那杰克飛的起來么。沒錯,他是超人,他可以飛。那另外一個普通人,我叫他飛,他也試圖飛,但是他飛不起來,所以報錯。

檸煙夏季
TA貢獻15條經驗 獲得超14個贊
父類的引用雖然實際指向的是子類對象 , 但是通過父類引用是無法去調用子類自己的方法 的
base.methodB(); 這句肯定會報錯
可以通過向下轉型來實現對子類方法的調用
添加回答
舉報
0/150
提交
取消