有关接口当中默认修饰符的问题

ncnaf 2013-01-26 03:30:53
为什么接口中的变量强制为public static final?public我能理解,static final又是为什么呢?
同样,接口中的内部类也强制为public static,为什么?
...全文
524 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
ncnaf 2013-01-30
  • 打赏
  • 举报
回复
引用 6 楼 a12939026 的回复:
谁和你说INTERFACE 中的变量需要强制为STATIC FINAL? 被你一说 我都糊涂了。 特地去ECLIPSE里试了下 Java code?123public interface AA { public int a =2;} 可以通过啊。
编译器会帮你添加修饰符
笑莫问 2013-01-28
  • 打赏
  • 举报
回复
因为接口不能被实例化,如果接口中的变量不是public static final,变量就不能被访问。 PS:接口中定义的变量一般都是当常量使用
Jacky-止涯 2013-01-27
  • 打赏
  • 举报
回复
引用 3 楼 nmyangym 的回复:
个人觉得这篇文章值得看看,或许能对理解java为什么这样有所帮助。 http://developer.51cto.com/art/200906/130093.htm
顶一个,好文章,切中重点
放开那个衰锅 2013-01-27
  • 打赏
  • 举报
回复
就是这样,有的接口什么方法都没有,只有一个常量 ,你拿来用 就可以对象实例化。没有什么好纠结的,就是一个约束。
chengxu2011 2013-01-27
  • 打赏
  • 举报
回复
ls的当然可以通过了因为编译器帮你加上static了 。。。。你想 如果不是static的你这个变量定义的还有用吗?接口本身是不能实例化的...
JPF1024 2013-01-27
  • 打赏
  • 举报
回复
地址不变的,接口又没法实例化,你又修改不了, 相当于,你是规则的制定者,接口的实现类只能按照你定义的规则去做。。
a12939026 2013-01-27
  • 打赏
  • 举报
回复
谁和你说INTERFACE 中的变量需要强制为STATIC FINAL? 被你一说 我都糊涂了。 特地去ECLIPSE里试了下

public interface AA {
	public int a =2;
}
可以通过啊。
redsigntzy 2013-01-27
  • 打赏
  • 举报
回复
引用 楼主 fanchengniang 的回复:
为什么接口中的变量强制为public static final?public我能理解,static final又是为什么呢? 同样,接口中的内部类也强制为public static,为什么? java interface
其实我觉得这个没什么好纠结的。 Java本来就是强类型的语言。 用sun的话来说就是“你喜欢你就用,不喜欢你就不用。” 程序员上下级间做代码交流基本都靠接口了。 你可以试想一下如果你做项目经理了,你给下面写接口。 结果你手底下的人实现以后各种乱改,你就明白了。
jiahao0321 2013-01-27
  • 打赏
  • 举报
回复
因为接口不能实例化 不new对象你怎么访问 成员变量呢? 只能是static 一般来说 接口里的成员肯定是不会变的 所以加final public是要把这个变量设置成最大的权限以供其他类可以访问~
nmyangym 2013-01-26
  • 打赏
  • 举报
回复
个人觉得这篇文章值得看看,或许能对理解java为什么这样有所帮助。 http://developer.51cto.com/art/200906/130093.htm
ncnaf 2013-01-26
  • 打赏
  • 举报
回复
引用 楼主 fanchengniang 的回复:
为什么接口中的变量强制为public static final?public我能理解,static final又是为什么呢? 同样,接口中的内部类也强制为public static,为什么? java interface
我的意思是为什么强制这么多修饰符,为什么不可以只让变量只有一个修饰符,比如public。
public interface Example{
public int number;/*这里无法通过编译,java语言机制强制number必须为public static final且初始化才能编译通过,为什么要有这种强制?*/
public void print();
}
paullbm 2013-01-26
  • 打赏
  • 举报
回复
static表示成员是接口的,而不属于接口实例的成员。在内存中只有一个地址。 final表示一旦初始化了,便不允许在运行时修改,以保障数据的安全性。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧