java - 实现具有相同方法的多个接口(interface)

标签 java oop interface overriding

此代码完美运行。方法 test() 适用于两个接口(interface)。幕后到底发生了什么?这个特性在实际场景中有什么用处?

interface A
{
    void test();
}

interface B 
{
    void test();
}

class C implements A, B
{

    public void test() 
    {
        System.out.println("abc");
    }
}

   A a = new C();
   a.test();
   B b = new C();
   b.test();

最佳答案

因为它是一个接口(interface),所以没有什么坏处。您基本上是通过实现 AB 为您的 C 类使用蓝图。 AB 都说 C 应该实现一个名为 test()

的方法

您的 C 类实现了该方法,因此接口(interface)已完成其工作。

它基本上是你的 C 类说:“哦,嘿,我需要实现 test() 因为接口(interface) A”然后你实现它。然后你的 C 类说“哦,嘿,由于接口(interface) B,我需要再次实现 test()”并且它看到已经有实现了一个名为 test() 的方法,因此它很满意。

您还可以在这里找到更多信息:JLS §8.4.8.4

关于java - 实现具有相同方法的多个接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17484325/

相关文章:

c++ - 基类函数被调用两次

c# - 一个接口(interface)和一个只有虚拟抽象方法的抽象类是一回事吗?

java - 在不实例化(未知)具体类型的情况下从方法返回接口(interface)对象

java - 使用接口(interface)而不是类来定义泛型

android - Kotlin - 接口(interface)中的只读属性

构建 : Unable to write output 时发生 Java 错误

java - JAXB 和无命名空间的 XML

java - Hibernate Validator iterator.hasNext() 不起作用

java - JFreeChart - 具有垂直 DateAxis 的条形图

C++ 错误 "undefined reference to GPScoord::(double,double) etc."