使用childs覆盖的Java父级

时间:2013-03-12 12:28:02

标签: java override

运行Parent.parentMethod2时会调用Child.parentMethod2Child.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
    }
}

3 个答案:

答案 0 :(得分:2)

将调用子方法(即重写的parentMethod2)。 这是继承在java中工作的“正常”方式 - 您的对象 是一个子对象,因此它将在子进程可用时运行它们。我们从parentMethod1调用parentMethod2没关系,它没有被覆盖。运行该方法的实例仍然是一个孩子

答案 1 :(得分:1)

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

答案 2 :(得分:1)

记住一件事

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

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