gpt4 book ai didi

java - 当一个类实现两个接口(interface)时,接口(interface)具有相同的方法名称但不同的返回类型,为什么它不起作用?

转载 作者:行者123 更新时间:2023-12-01 20:27:16 24 4
gpt4 key购买 nike

当一个类实现两个接口(interface)时,接口(interface)具有相同的方法名称但不同的返回类型,为什么它不起作用?java会为此给出编译器错误,为什么我们不能重载interface_1类中的方法?

import static java.lang.System.out; 
interface A1{
int add();
}
interface A2{
String add();
}
public class interface_1 implements A1,A2{

public static void main(String args[]){
out.println("a");
}

@Override
public String add() {
// TODO Auto-generated method stub
return null;
}
@Override
public int add() {
// TODO Auto-generated method stub
return 2;
}
}

最佳答案

您不能这样做的原因与您不能仅根据其返回类型重载方法的原因相同:Java 缺乏语法来选择当方法名称和参数相同时要调用哪个方法。

当你写的时候

object res = obj.add();

编译器不知道您要调用两个 add 方法中的哪一个,返回一个 intString,因为它们的名称和参数是相同的。

关于java - 当一个类实现两个接口(interface)时,接口(interface)具有相同的方法名称但不同的返回类型,为什么它不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43693417/

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