請問,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
提交
取消