通过父级间接调用时,子类是否调用覆盖方法?

时间:2018-04-11 20:19:18

标签: java

如果类A中的方法调用类B中的父方法,该方法在类A中调用方法X并在类A中重写,那么将调用方法X的实现?子类A中的重写实现或父类B中的原始实现?

从我的代码中,我看到调用了override方法,但我想如果从类调用一个方法,该方法将不是子类中的重写方法。我想如果一个子类调用父类中的一个方法调用一个在子类中重写的方法,那么将调用重写的方法?是对的吗?为什么?

2 个答案:

答案 0 :(得分:0)

考虑父类中的抽象方法,可以通过父级的其他非抽象方法调用(是的,它编译!)

它始终是一个虚方法调用,始终是子实现(当然除了静态方法和私有方法)。

父母可以调用child的重写方法。

答案 1 :(得分:0)

对于非静态方法,JRE查找覆盖并调用子方法,即使调用者是父方法中的方法。

不要覆盖静态方法。