1
這個問題類似於Why can a "private" method be accessed from a different instance?爲什麼我不能在實例中看到子類實例上的私有方法?
我相信在那裏的答案。代碼應該運行。然而,當我改變代碼是這樣
class Horse extends Animals{
}
public class Animals {
private void eat(){
System.out.println("Generic Eating");
}
public static void main(String[] args){
Animals h = new Horse();
h.eat();
}
}
,當我嘗試使用多態來調用私有方法吃()的子類馬它的工作原理,並調用父類的方法。
- 不是java動態調用實例類的具體方法嗎?
- 不應該拋出一個運行時異常嗎?
- 這是否意味着該方法實際上是繼承的,但通常不可訪問?
這些類是在同一個文件中定義的嗎? –
@KevinKrumwiede那很重要嗎? – Tom
@KevinKrumwiede,文件與任何與成員的可見性相關的內容都是不相關的。 –