MST

星途 面试题库

面试题:Java接口多继承及冲突处理

Java接口可以继承多个接口,请阐述这种多继承可能会带来哪些潜在的问题,尤其是当不同父接口中存在同名方法时。并且说明如何在实现类中解决这些冲突,给出具体的代码示例。
44.4万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试

潜在问题

  1. 命名冲突:不同父接口中存在同名方法,实现类不清楚具体要实现哪个接口的语义,调用时也难以确定行为。
  2. 语义冲突:同名方法在不同父接口可能有不同语义,实现类实现该方法时难以满足所有接口语义需求。

实现类解决冲突方式

  1. 明确实现:在实现类中明确按照需求实现同名方法,满足业务需求。
  2. 调用特定接口方法:使用接口名.方法名的形式调用特定接口的默认方法(Java 8 及以后接口可包含默认方法)。

代码示例

interface InterfaceA {
    default void method() {
        System.out.println("InterfaceA's method");
    }
}

interface InterfaceB {
    default void method() {
        System.out.println("InterfaceB's method");
    }
}

class ImplementingClass implements InterfaceA, InterfaceB {
    @Override
    public void method() {
        // 明确实现,例如选择InterfaceA的行为
        InterfaceA.super.method(); 
        // 也可以自定义实现逻辑
        // System.out.println("Custom implementation in ImplementingClass"); 
    }
}
public class Main {
    public static void main(String[] args) {
        ImplementingClass obj = new ImplementingClass();
        obj.method();
    }
}