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)
根据互联网上的消息来源"实现多个接口永远不会导致冲突"但上述代码会产生错误.所以这就是我所说的冲突.
变量可以在接口中定义,默认情况下它们是最终的
*默认情况下,Java接口中的变量是public,static和final.这是因为接口并不是指示实现,而是指示行为.这意味着接口中的变量实际上是常量.
静态变量不是继承的.所以不存在冲突的可能性.