请问,o.MethodA调用的是:()A.BaseClass.methodA B.class2.methodAC.Class1.methodA D.都不是以上正确答案应该选择哪个?请给出详细原因,谢谢!
2 回答
深蓝蝴蝶
TA贡献2条经验 获得超1个赞
答案是A
这个问题涉及到函数重载和重写。
首先看Class1,继承了BaseClass的两个方法methodA()和methodB(),然后重写了一个方法methodA(Stirng arg),重载了methodB()。因此,Class1可以调用三个方法methodA()来自BaseClass、methodA(String arg)来自Class1和methodB()来自Class1。
再看Class2,继承Class1。
Class2可调用三个方法。methodA()来自BaseClass、methodA(String arg)来自Class1和methodB()来自Class1,但是Class2重载了methodB()
因此Class2实际生效的方法
methodA() 来自BaseClass
methodA(String arg) 来自Class1
methodB() 来自Class2
o.methodA(),是调用BaseClass的方法,因此选A。
慕粉15255556666
TA贡献12条经验 获得超10个赞
选择A,class2点父类是class1,向上找会发现它的最初父类是baseclass,方法methoda 在执行的时候想找父类的方法去执行
添加回答
举报
0/150
提交
取消