为什么一个类可以实现多个接口但不能继承多个类?

Chi*_*ain 0 java inheritance interface

我发现的答案之一是"如果属于两个不同类的两个方法/变量具有相同的名称,则多重继承会导致冲突".但我认为在实现多个接口时也可能存在冲突.例如,考虑一个实现两个具有相同变量名的接口的类(变量可以在接口中定义,并且它们在默认情况下是最终的)在它们内部声明

interface Ainterface {

    public final static int i=10;

}


class InterfaceCheck implements Ainterface {
        public static void main(String[] args) {        
        System.out.println(i);
    }

}
Run Code Online (Sandbox Code Playgroud)

上面的代码完全正常

interface Ainterface {

    public final static int i=10;

}

interface Binterface {

    public static final int i=20;

}

class InterfaceCheck implements Ainterface,Binterface {
        public static void main(String[] args) {        
        System.out.println(i);
    }

}
Run Code Online (Sandbox Code Playgroud)

根据互联网上的消息来源"实现多个接口永远不会导致冲突"但上述代码会产生错误.所以这就是我所说的冲突.

hav*_*wal 6

变量可以在接口中定义,默认情况下它们是最终的

*默认情况下,Java接口中的变量是public,staticfinal.这是因为接口并不是指示实现,而是指示行为.这意味着接口中的变量实际上是常量.

静态变量不是继承的.所以不存在冲突的可能性.