小编cce*_*asy的帖子

带有重载的Java函数调用

我想知道为什么第三个输出不是b.

这是我的代码:

public class SimpleTests {
    public void func(A a) {
        System.out.println("Hi A");
    }
    public void func(B b) {
        System.out.println("Hi B");
    }
    public static void main(String[] args) {
        A a = new A();
        B b = new B();
        A c = new B();
        SimpleTests i = new SimpleTests();
        i.func(a);
        i.func(b);
        i.func(c);
    }
}
class A {}
class B extends A {}
Run Code Online (Sandbox Code Playgroud)

这是输出:

Hi A
Hi B
Hi A
Run Code Online (Sandbox Code Playgroud)

有人能告诉我为什么第三个输出是Hi A,不是Hi B.因为真实的c是B的一个实例.

java overloading

13
推荐指数
2
解决办法
944
查看次数

标签 统计

java ×1

overloading ×1