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了。
那就没意思,所以不可更改。 |