gpt4 book ai didi

java - 为什么要使用接口(interface),多重继承与接口(interface),接口(interface)的好处?

转载 作者:IT老高 更新时间:2023-10-28 13:53:39 24 4
gpt4 key购买 nike

我仍然对这件事有些困惑。到目前为止我发现的是

(这里已经提出了类似的问题,但我还有其他一些问题。)

  1. Interface is collection of ONLY abstract methods and final fields.

  2. There is no multiple inheritance in Java.

  3. Interfaces can be used to achieve multiple inheritance in Java.

  4. One Strong point of Inheritance is that We can use the code of base class in derived class without writing it again. May be this is the most important thing for inheritance to be there.

现在..

Q1. As interfaces are having only abstract methods (no code) so how can we say that if we are implementing any interface then it is inheritance ? We are not using its code.

Q2. If implementing an interface is not inheritance then How interfaces are used to achieve multiple inheritance ?

Q3. Anyhow what is the benefit of using Interfaces ? They are not having any code. We need to write code again and again in all classes we implement it.

那为什么要做接口(interface)呢?

注意:我发现了一个界面很有帮助的案例。一个例子是在 Runnable 接口(interface)中,我们有 public void run() 方法,在该方法中我们定义了线程的功能,并且内置了该方法将作为单独的线程运行的编码。所以我们只需要在线程中编写代码,Rest 是预定义的。但这件事也可以使用抽象类来实现。

那么使用接口(interface)的确切好处是什么?我们使用接口(interface)实现的真的是多重继承吗?

最佳答案

Q1. As interfaces are having only abstract methods (no code) so how can we say that if we are implementing any interface then it is inheritance ? We are not using its code.

我们不能。接口(interface)不用于实现多重继承。他们将其替换为更安全但功能稍弱的构造。注意关键字 implements 而不是 extends

Q2. If implementing an interface is not inheritance then How interfaces are used to achieve multiple inheritance ?

他们不是。使用接口(interface),单个类可以有多个“ View ”、不同的 API 或功能。例如。一个类可以同时是 RunnableCallable 的,而这两种方法实际上是在做同样的事情。

Q3. Anyhow what is the benefit of using Interfaces ? They are not having any code. We need to write code again and again in all classes we implement it.

接口(interface)是一种多重继承,没有后者引入的问题(如 Diamond problem)。

接口(interface)的用例很少:

  1. 对象实际上有两个身份:Tank is 既是 Vehicle 又是 Weapon。您可以使用 Tank 的实例,其中预期前者或后者(多态性)。这在现实生活中很少见,实际上是多继承更好(或特征)的有效示例。

  2. 简单的职责:游戏中Tank对象的实例也是Runnable,让你在线程中执行它和一个ActionListener 来响应鼠标事件。

  3. 回调接口(interface):如果对象实现了给定的回调接口(interface),则通知其生命周期或其他事件。

  4. 标记接口(interface):不添加任何方法,但可以通过instanceof轻松访问以发现对象的功能或愿望。 SerializableCloneable 就是这样的例子。

您正在寻找的是 trait(如在 Scala 中),不幸的是在 Java 中不可用。

关于java - 为什么要使用接口(interface),多重继承与接口(interface),接口(interface)的好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8531292/

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