Java不支持多重继承,因为如果两个类具有相同的函数名称但实现方式不同,并且如果第三个类继承了这两个类并且希望使用该方法,那么它将在应该调用哪个方法上造成混乱。因此,java使用了多个接口的概念。但是我的疑问是,两个接口是否也具有相同的函数名但实现方式不同,并且如果第三类实现了这两个接口,并且在为该方法提供实现时,这不是问题,请解释一下?

最佳答案

当两个方法具有相同的参数但返回类型不同时,两个接口之间就会发生冲突。

例:

public class MultipleInterfaceClash {

    public interface Foo {
        String baz(int a, String x);
    }

    public interface Bar {
        Double baz(int a, String x);
    }

    public class Confused implements Foo, Bar {

        // Compile error: The return type is incompatible with
        // MultipleInterfaceClash.Foo.baz(int, String)
        public Double baz(int a, String x) {
            return null;
        }

    }
}


不可能同时实现这两个接口。

关于java - 如果多重继承存在菱形图案问题,则多个接口(interface)也应具有相同的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13777568/

10-13 09:15