gpt4 book ai didi

java - 将类转换为其实现的接口(interface)

转载 作者:行者123 更新时间:2023-12-01 23:53:42 25 4
gpt4 key购买 nike

转换为接口(interface)的能力的目的是什么?

我有那个界面

public interface Iperson{ 
String getTitle();
int getID();
}

我有一个类实现它,例如

public class Person implements Iperson{

public Person(){...}

@Override
public String getTitle() {
return 'aaa';
}

@Override
public int getID() {
return '111';
}
}

在另一个类中,我有一个带有签名的函数:

public boolean insert(Iperson somePerson)

somePersonPerson 的实例时和 somePerson 时调用 insert(somePerson) 有什么区别是一个 Actor (Iperson)Person

什么时候会使用第二个选项?

最佳答案

从语义上来说,没有区别。当您不显式转换时,将执行隐式向上转换。

请注意,在某些情况下可能需要显式强制转换来解决歧义:

public class Clazz {

interface IOne {}
interface ITwo {}

static class C implements IOne, ITwo {}

static void foo(IOne arg) {}
static void foo(ITwo arg) {}

public static void main(String args[]) {
foo(new C()); // ERROR: foo is ambiguous
foo((IOne)new C()); // OK
foo((ITwo)new C()); // OK
}

}

关于java - 将类转换为其实现的接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15958333/

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