gpt4 book ai didi

方法重载导致 Java 编译错误

转载 作者:行者123 更新时间:2023-11-30 03:38:42 25 4
gpt4 key购买 nike

在不进行显式解析 (Sub1) in 的情况下实现下面的 testCall2 的最佳方法是什么?

class Super {
}

class Sub1 extends Super {
}

class Sub2 extends Super {
}

public void testCall2(Super in) {
testCall(in); // <~~~ Compilation Error

}

public void testCall(Sub1 sub) {

}

public void testCall(Sub2 sub) {

}

最佳答案

您必须重构并使用多态性。在Super中声明testCall方法

class Super {
public void testCall() {}
}

并在子类中实现它。

然后调用它

public void testCall2(Super in) {
in.testCall();
}

否则,您必须使用强制转换将值的类型转换为任一方法所需的类型。

关于方法重载导致 Java 编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27241014/

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