说我有这个超级班级:

public class MySuperClass {

protected void MyPrMethod() {
        //Do...
    }

    public void MyPuMethod() {
        MyPrMethod();
    }
}


和这个子类:

public class MySubClass extends MeSuperClass {
    public MySubClass() {}

    @Override protected void MyPrMethod() {
        //Do this instead...
    }
}


然后进入主要:

MySubClass mySubClass = new MySubClass ();
mySubClass.MyPuMethod();


mySubClass.MyPuMethod()将调用哪个MyPrMethod?

编辑:我已经三次投票了。由于我现在不在家,所以我现在无法尝试,尽管现在知道答案将有助于我设计自己正在编写的程序中的零件。

最佳答案

因为方法MyPrMethod()在子类中被覆盖,所以将调用子类实现。

实际调用的方法取决于调用它的对象。

07-24 15:35