首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

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

2012-02-11 
关于类实现借口的问题Java codepublic class TestClass implements I1,I2{public static void main(String

关于类实现借口的问题

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规范中不提倡在接口中定义变量 因为一旦定义 就成了一个契约 为了兼容性 必须一致保持这个变量

热点排行