为了账号安全,请及时绑定邮箱和手机立即绑定

关于抽象类和继承和方法调用的一道题

关于抽象类和继承和方法调用的一道题

慕斯3028391 2017-05-25 10:54:52
请问,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。

查看完整回答
1 反对 回复 2017-05-25
?
慕粉15255556666

TA贡献12条经验 获得超10个赞

选择A,class2点父类是class1,向上找会发现它的最初父类是baseclass,方法methoda 在执行的时候想找父类的方法去执行
查看完整回答
反对 回复 2017-05-25
  • 2 回答
  • 0 关注
  • 2055 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信