小编use*_*612的帖子

调用超类方法而不是子类方法

让我们看一下这段代码:

public class ParentClass {
    public void foo(Object o) {
        System.out.println("Parent");
    }
}

public class SubClass extends ParentClass {
    public void foo(String s) {
        System.out.println("Child");
    }

    public static void main(String args[]) {
        ParentClass p = new SubClass();
        p.foo("hello");
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望这能打印出“孩子”,但结果是“父母”。为什么Java会改为调用父类,我该怎么做才能使其在子类中调用方法?

java polymorphism inheritance overriding

5
推荐指数
1
解决办法
1136
查看次数

标签 统计

inheritance ×1

java ×1

overriding ×1

polymorphism ×1