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,文件与任何与成员的可见性相关的内容都是不相关的。 –