读书人

关于类实现借口的有关问题

发布时间: 2012-02-11 09:51:34 作者: rapoo

关于类实现借口的问题

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


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

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



[解决办法]
应该知道的是接口中的变量默认的是static final类型的
所以你的子类根本不用区分 你的子类中也根本没有这两个变量 这两个变量是属于接口的 就是说实现没实现I1 I2这两个接口都可以用这两个变量

并不像类中的变量一样会被继承过来 所以你要用这两个变量 只需要在前面加上接口 也就是LS说的情况

另外java规范中不提倡在接口中定义变量 因为一旦定义 就成了一个契约 为了兼容性 必须一致保持这个变量

读书人网 >J2SE开发

热点推荐