gpt4 book ai didi

java - 模棱两可的多态性?

转载 作者:搜寻专家 更新时间:2023-11-01 01:01:22 25 4
gpt4 key购买 nike

在两个接口(interface)应用于一个对象的情况下,有两个仅通过区分这些接口(interface)而不同的重载方法,调用哪个方法?

在代码中。

interface Foo {}
interface Bar {}

class Jaz implements Foo, Bar {}

void DoSomething(Foo theObject)
{
System.out.println("Foo");
}

void DoSomething(Bar theObject)
{
System.out.println("Bar");
}

Jaz j = new Jaz();
DoSomething(j);

将调用哪个方法? DoSomething(Foo) 还是 DoSomething(Bar)?两者都不比另一个更具体,而且我看不出为什么应该调用一个而不是另一个,除了一个被指定为第一个/最后一个。

编辑:使用这种类型的代码是否可以强制执行一种或另一种方法?

最佳答案

这应该是一个编译器错误。

这个有效:

DoSomething((Foo)j);
DoSomething((Bar)j);

关于java - 模棱两可的多态性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1115291/

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