运行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
}
}
答案 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'当前正在执行作为子对象的对象。所以将调用子方法。