A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

谁能给我解释下么?

2 个回复

倒序浏览
因为接口中都是默认有 final static的,强制为常量
回复 使用道具 举报
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了。
那就没意思,所以不可更改。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马