当前位置: 首页 > 面试题库 >

Java为什么要使用接口,多重继承与接口,接口的优点?

轩辕源
2023-03-14
问题内容

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

(这里已经问过类似的问题,但我还有其他几点。)

  1. 接口是仅抽象方法和最终字段的集合。
  2. Java中没有多重继承。
  3. 接口可以用于在Java中实现多重继承。
  4. 继承的一个强项是我们可以在派生类中使用基类的代码,而无需再次编写。可能这是继承在那里最重要的事情。

现在..

Q1。由于接口仅具有抽象方法(无代码),因此,如果我们实现任何接口,那么该如何继承呢?我们没有使用它的代码。

Q2。如果实现接口不是继承,那么如何使用接口实现多重继承?

Q3。无论如何,使用接口有什么好处?他们没有任何代码。我们需要在实现它的所有类中一次又一次地编写代码。

那为什么要建立接口呢?

注意:我发现一种情况下接口是有用的。它的一个示例就像在Runnable接口中,我们有public void run()方法,其中定义了线程的功能,并且内置了编码,该方法将作为单独的线程运行。所以我们只需要编写在线程中做什么的代码,Rest是预先定义的。但是,这也可以使用抽象类和所有类来实现。

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


问题答案:

接口是最终静态字段和抽象方法的集合(新Java 8增加了对在接口中具有静态方法的支持)。

当我们知道必须完成某些任务但应该如何完成时,就可以创建接口。换句话说,我们可以说我们实现了接口,以便我们的类以特定的方式开始表现。

让我举例说明,我们都知道动物是什么。就像狮子是动物,猴子是动物,大象是动物,牛是动物等等。现在我们知道所有动物都确实会吃东西并入睡。但是,每只动物可以吃东西或睡觉的方式可能有所不同。就像狮子通过猎杀其他动物而进食一样,在那里牛吃草。但是都吃。这样我们可以有一些伪代码,

interface Animal {
    public void eat();
    public void sleep();   
}

class Lion implements Animal {
    public void eat() {
        // Lion's way to eat
    }

    public void sleep(){
         // Lion's way to sleep
    }
}

class Monkey implements Animal {
    public void eat() {
        // Monkey's way to eat
    }

    public void sleep() {
        // Monkey's way to sleep
    }
}

根据上面提到的伪代码,任何能够进食或睡眠的东西都将被称为动物,或者我们可以说所有动物都必须进食和睡眠,但是进食和睡眠的方式取决于动物。

对于接口,我们仅继承行为,而不继承类继承的实际代码。

Q1。由于接口仅具有抽象方法(无代码),因此,如果我们实现任何接口,那么该如何继承呢?我们没有使用它的代码。

实现接口是另一种继承。它与类的继承不同,因为继承子类从基类中获取要重用的真实代码。

Q2。如果实现接口不是继承,那么如何使用接口实现多重继承?

据说因为一个类可以实现多个接口。但是我们需要了解,这种继承不同于类的继承。

Q3。无论如何,使用接口有什么好处?他们没有任何代码。我们需要在实现它的所有类中一次又一次地编写代码。

实现接口会使类不得不强制其必须重写其所有抽象方法。



 类似资料:
  • 问题内容: 我认为多重继承在Java中总是非法的,但是这段代码可以编译: 是否有一个空接口,例如被认为是不好的做法?有没有一种方法可以避免空接口(使用泛型或其他方式)实现相似的目的? 注意:我不是在问如何通过接口模拟多重继承。我意识到我可以执行以下操作: 由于各种原因,我需要同时具有这两种方法的接口。 问题答案: 实现的 多重继承是不允许的。组件可以继承多个接口。 继承多个接口没有问题,因为您只是

  • 我有两个接口: 和: 从注释中可以看到,不编译。为什么不呢?我该怎么修复它呢?扩展了,所以它应该可以工作,对吗?

  • 本文向大家介绍PHP接口继承及接口多继承原理与实现方法详解,包括了PHP接口继承及接口多继承原理与实现方法详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP接口继承及接口多继承原理与实现方法。分享给大家供大家参考,具体如下: 在PHP的接口中,接口可以继承接口。虽然PHP类只能继承一个父类(单继承),但是接口和类不同,接口可以实现多继承,可以继承一个或者多个接口。当然接口的继承也是

  • 问题内容: 我们需要大量的序列化工作,并且必须在使用的每个对象上指定标签,这是一种负担。特别是当它是第三方类时,我们不能真正更改。 问题是:由于是一个空接口,并且Java一旦添加便提供了可靠的序列化 为什么它们不使所有内容都可序列化,仅此而已? 问题答案: 序列化充满陷阱。这种形式的自动序列化支持使类内部成为公共API的一部分(这就是javadoc为你提供类的持久化形式的原因)。 为了实现长期持久

  • 如何实现继承接口的函数?我有以下接口: 现在我希望IShelter有一个函数: 但我希望狗庇护所能这样实施: 像这样的猫头鹰: 有没有办法做到这一点?除了有DogShelter实现存储(IAnmial动物)和检查是否(动物是IDog)? 我应该用商店(动物),然后用(动物)投它吗? (我想使用关于IDog和ICat的接口继承。类继承在实际代码中是不可能的)(此时计算时间有点重要。使用Store(I

  • 问题内容: 我是Java程序员,正在学习使用Go语言编程。到目前为止,我真的很喜欢这种语言。比Java多得多。 但是有一件事我有点困惑。Java具有接口,因为类只能从一个类继承。由于Go允许多重继承,所以接口的意义是什么? 问题答案: 多态性 接口使函数具有“占位符”参数,该参数可以采用不同的结构作为参数。例如,如果结构Man,Woman,Child实现了Human接口,则参数为Human的方法可