0

运行时将Parent.parentMethod2或被Child.parentMethod2调用Child.childMethod1

public class Parent
{
    public void parentMethod1()
    {
        parentMethod2();
    }

    public void parentMethod2()
    {
        //do something
    }
}

public class Child extends Parent
{
    public void childMehod1()
    {
        parentMethod1();
    }

    @Override
    public void parentMethod2()
    {
        //do something else
    }
}
4

3 回答 3

2

子方法将被调用(即被覆盖的 parentMethod2)。这是 java 中继承工作的“正常”方式——你的对象一个孩子,所以当孩子的方法可用时它会运行它们。我们从 parentMethod1 调用 parentMethod2 并不重要,它不会被覆盖。运行该方法的实例仍然是一个孩子

于 2013-03-12T12:45:32.363 回答
1

Child.childMehod1()会打电话Child.parentMethod2()。意思是,您的“//做其他事情”代码将被执行。

于 2013-03-12T12:39:00.747 回答
1

记住一件事

   public class Parent
    {
        public void parentMethod1()
        {
            this.parentMethod2();  //I have added 'this' here, ('this'  is implicit)
        }
    }

所以'this'当前正在执行的对象是子对象。因此将调用子方法。

于 2013-03-12T12:39:12.287 回答