gpt4 book ai didi

Java:如何声明一个变量实现了一个接口(interface)?

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:56:06 25 4
gpt4 key购买 nike

在 Objective-C 中,我可以这样做:

id<HTTPRequestDelegate> delegate;

表示delegate(id类型的变量)符合HTTPRequestDelegate协议(protocol)(或实现HTTPRequestDelegate Java 中的接口(interface))。

这样,每当我将 HTTPRequestDelegate 协议(protocol)定义的消息发送到 delegate 时,编译器就会理解 delegate 响应。

我该怎么做,即 duck typing/Java 中的动态类型?

最佳答案

Java 中不存在鸭子类型(duck typing)。如果一个类实现了一个接口(interface),它必须声明这个接口(interface)被实现了。仅仅拥有与接口(interface)中的方法具有相同签名的方法是不够的。

不过,接口(interface)是一种类型,您可以声明这种类型的变量。例如:

List<String> myList;

声明一个变量myList类型 List<String> , 其中List是一个接口(interface)。

您可以使用实现此 List 接口(interface)的任何对象初始化此变量:

myList = new ArrayList<String>();

然后 ArrayList必须声明它实现了 List界面(它确实如此)。

关于Java:如何声明一个变量实现了一个接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6588105/

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