public class TestClass implements I1,I2{
public static void main(String[] args) {
System.out.println(TestClass.time);

}}加入借口I1和I2中存在同名的常量
实现他们的类TestClass中如何加以区分?

解决方案 »

  1.   

    这样会造成 TestClass 类的 同名常量暧昧,应该尽量避免
    如果不可避免,那就只能通过接口去调用,不能直接通过实现类调用,如
    System.out.println(I1.time);
    System.out.println(I2.time);
      

  2.   

    应该知道的是接口中的变量默认的是static final类型的
    所以你的子类根本不用区分  你的子类中也根本没有这两个变量  这两个变量是属于接口的  就是说实现没实现I1 I2这两个接口都可以用这两个变量
     
    并不像类中的变量一样会被继承过来  所以你要用这两个变量  只需要在前面加上接口  也就是LS说的情况另外java规范中不提倡在接口中定义变量  因为一旦定义  就成了一个契约  为了兼容性  必须一致保持这个变量