黑马程序员技术交流社区

标题: 在接口中不能有实例变量,只能有静态的常量 [打印本页]

作者: 可见    时间: 2012-3-13 15:39
标题: 在接口中不能有实例变量,只能有静态的常量
谁能给我解释下么?
作者: 秦超    时间: 2012-3-13 16:07
因为接口中都是默认有 final static的,强制为常量
作者: 赵英坤    时间: 2012-3-13 16:13
a.接口被实现才有意义,所以要是public的,否则对于子类不可见的话,没意义。
b.接口可能被很多实现类 实现,则,为了保持接口中数据对所有实现类只有一份,所以要是static。
c.我的理解:为了让实现类能向上转型成功,所以必须是final的。
举个例子,加入有个接口 IFace,接口中有成员变量V,
实现此接口的有类 Imp1,和Imp2,
IFace i = null;
i = new Imp1();//实际实现类

则i.V 可以得到V的值。
这里不关心 i 这个引用到底指向谁,但它的i.V是一定的。
如果可以被更改,那么我用Imp1更改了V的值,可影响到了Imp2里的V了。
那就没意思,所以不可更改。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2