我无法理解以下代码的流程。
场景:类测试扩展了类Test2,两个类都具有相同的字段a,b,但是有一种方法可以返回两者及其父类的和。
代码:
package test;
public class Test extends Test2{
public static void main(String[] args){
Test t = new Test();
System.out.println(t.sum());
}
int a = 1;
int b= 1;
}
class Test2{
int a = 3;
int b= 2;
public int sum(){
return a+b;
}
}
输出:5
我的困惑是当Test扩展Test2时,应该在Test中继承public int sum(),然后在调用sum时应返回2。
此外,如果更新代码并覆盖Test中的总和,则输出为2。
如果参考oracle文档,它会说“与超类中的字段具有相同名称的字段会隐藏超类的字段,即使它们的类型不同也是如此”:
喜欢对此做一个解释。
可能类似于:
但是答案并不能消除我的困惑。为什么sum方法不参与继承?
谢谢