如果我在超类中有两个方法,则将它们分别称为a()和b(),而b()则调用a(),并且我有一个重写a()的子类,那么,如果我在实例上调用b()在子类中,它将使用超类中的a()还是子类中的a()的变体?
在此先感谢您提供任何答案:我在搜索中没有发现任何问题,因为该问题很难用短语来表达。
它将在子类中调用一个。您可以设计一个实验来自己测试:
class Super {
void a() { System.out.println("super implementation"); }
void b() { System.out.println("calling a()..."); a(); }
}
class Sub extends Super {
void a() { System.out.println("sub implementation"); }
}
public class Main {
public static void main(String[] args) {
Sub x = new Sub();
x.b();
// Prints:
// calling a()...
// sub implementation
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句