为什么在调用带有0和1参数的方法时存在歧义?

时间:2019-07-08 16:41:10

标签: java inheritance overriding

我正在阅读有关覆盖的内容,并遇到了奇怪的输出。

public class Child extends Parent {
    public void display(Integer i) {
        System.out.println("child");
    }
    public void display() {
        System.out.println("child without args");
    }
    public static void main(String[] args) {
        Parent p = new Child();
        p.display(8);   
        p.display();    
    }
}
class Parent {
    public void display(int ii) {
        System.out.println("parent");
    }
    public void display() {
        System.out.println("parent without args");
    }
}

输出:

parent
child without args

当我调用不带参数的显示方法时,它是从Child类调用方法。当我使用args(8)调用时,它正在调用Parent方法吗?

请解释。

0 个答案:

没有答案