gpt4 book ai didi

java - 为什么必须在类中而不是接口(interface)中定义方法?

转载 作者:行者123 更新时间:2023-12-01 19:29:49 24 4
gpt4 key购买 nike

所以,根据 GeeksForGeeks ,接口(interface)可以有字段和方法签名,但这些方法不能被定义。

实现接口(interface)的类必须在其实现的接口(interface)中定义每个方法的主体。

如果是这样的话,接口(interface)中的方法签名有什么意义呢?为什么不给自己留有回旋余地,而不是限制自己必须定义您可能想要或不想使用的方法?

最佳答案

嗯,有两点。

首先,Java 支持接口(interface)的实现。你需要使用default关键字,这是从Java 9开始出现在Java中的(我不太确定版本号)。但是,你为什么要这么做呢?

接口(interface)共享多个类的公共(public)接口(interface),因此可以用作数据类型。例如,您可以编写一个方法,该方法需要接口(interface)类型的参数。在该方法中,您可以根据接口(interface)调用所有参数方法,您可以在其中知道它们的签名。这里的要点是,接口(interface)描述了常见的行为。也就是说,接口(interface)是用来做什么的!

(抽象)类和接口(interface)之间的区别是:在(抽象)类中,您定义,您拥有什么以及它将是什么样子。在这种情况下,继承是一种扩展(或特殊化)的关系,因此您可以以 child 是 parent 的形式来描述它,但它可能还有更多的东西。但IS关系是基本点。接口(interface)描述了行为,因此实现接口(interface)的类的行为类似于该接口(interface)。 LinkedList 和 ArrayList 是很好的例子。从内部来看,它们看起来完全不同,但它们都存储许多元素(哈希列表也是如此)。这两个类都实现了 List 接口(interface),因为您都可以将它们视为列表:例如,您可以迭代它们,而 HashMap 中则不是这种情况。

因此,如果您想共享公共(public)结构和内容,请使用继承或抽象类对它们进行分组。如果您想共享共同的行为,请使用接口(interface),因为它们的内部外观并不重要,重要的是您可以用它们做什么。因此,您可以按操作对其进行分组。

关于java - 为什么必须在类中而不是接口(interface)中定义方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60101124/

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