关于java中实现多个接口的问题
如果我有两个接口
public interface MyInterface1{
public int a=1;
}
public interface MyInterface2{
public int a=2;
}
class Test implements MyInterface1,MyInterface2{
}
在main中:
Test t = new Test();
System.out.println(t.a); <----这里会出编译问题
在c++中可以通过虚拟继承来避免这种菱形继承的问题
我想问,在java中用什么办法避免?还是java提供了什么机制来避免?
如果有,上面代码怎么改???
谢谢
------解决方案--------------------首先在interface 里定义的变量都是static的,无论有没有用static关键字
冲突的时候只能使用类名来引用了
System.out.println(MyInterface1.a);
------解决方案--------------------冲突的时候只能使用类名来引用了.
------解决方案--------------------ls up
------解决方案--------------------up
------解决方案--------------------static表示静态方法,可以脱离类而实现,也就是说可以没有一个类的实例也能执行这个static方法,类似于一个全局方法。因此,static方法中的代码必须是可以单独拿出来执行的,如果要执行这个类中的非static方法,必须先实现一个这个类的实例。
------解决方案--------------------之所以使用static是因为接口不能被实例化,而如果这样的前提下还要使用其中的属性的话,就只有使用类属性,也就是static存在的原因了。