Java继承混乱

时间:2018-07-20 13:08:56

标签: java inheritance

我无法理解以下代码的流程。

场景:类测试扩展了类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方法不参与继承?

谢谢

0 个答案:

没有答案