gpt4 book ai didi

java - 该继承程序在执行时给出输出 '2' 。如何?

转载 作者:太空宇宙 更新时间:2023-11-04 11:27:06 24 4
gpt4 key购买 nike

class A { }

class B extends A { }

class C extends B { }

public class MainClass {

static void overloadedMethod(A a) {
System.out.println("1");
}

static void overloadedMethod(B b) {
System.out.println("2");
}

static void overloadedMethod(Object obj) {
System.out.println("3");
}

public static void main(String[] args) {
C c = new C();
overloadedMethod(c);
}
}

这个继承程序在执行时给出输出2。怎么办?

最佳答案

好吧,C 类的实例可以传递给这三个 overloadedMethod 方法中的任何一个,因此编译器会选择其参数具有最具体类型的方法 - static void overridedMethod(B b) - 因为 BA 的子类,而 AObject 的子类,因此 BA 都更具体对象

关于java - 该继承程序在执行时给出输出 '2' 。如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44238979/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com