接口中的变量为什么默认是public static final的?

tomsheep 2008-10-26 10:54:22
如果说public是为了让实现类访问,那设计成protected会有什么弊端?
如果说static是为了让所有实现类只有此一实例,这又是为什么?
如果final是为了不让实现类修改,又是为何?
...全文
603 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
ageha67 2009-03-19
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 yy2004005 的回复:]
在学习java的过程中又很多东西不能理解是很正常的,而且很大一部分现在也不需要理解,等时间长了,有了开发的经验,到时有很多东西不用刻意去理解你也可以掌握的,总之实战最终要~~
[/Quote]


嗯嗯。。。今天回头看书上的接口部分,也是突然和lz同问。。。受教了。。。。
chiphuo 2008-10-27
  • 打赏
  • 举报
回复
我觉得这是接口的作用决定的,

接口主要是为了实现多态的,接口里的代码并不是为了复用的

而类除了为了实现多态是
还为了实现代码的复用
如果static了,一个子类把值一改,所有的全部改掉了,不合道理
tomsheep 2008-10-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xqh2168 的回复:]
static变量是类变量,不属于某个具体的对象,
接口是一系列抽象方法的集合,无法实例化,所以必须是static类型;
[/Quote]
那抽象类也无法实例化,为什么成员不默认是static的?
ssnec 2008-10-27
  • 打赏
  • 举报
回复
没必要扣字眼。当然这种钻的精神还是好的。

推荐你去看那些基础书,最好是英文原版的。讲得很清楚。

至于为什么PUBLIC,STATIC,FINAL。
就好比我们默认的潜规则,红灯停,绿灯行一样。
AppleBoy2008 2008-10-27
  • 打赏
  • 举报
回复
有些东西用的多了,自然就理解了,再者刚开始学习java应该即学即用,等有经验了就可以研究源码了。
zhangpeng9886123 2008-10-27
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 yy2004005 的回复:]
在学习java的过程中又很多东西不能理解是很正常的,而且很大一部分现在也不需要理解,等时间长了,有了开发的经验,到时有很多东西不用刻意去理解你也可以掌握的,总之实战最终要~~
[/Quote]
真的吗??不懂
getter 2008-10-27
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 yy2004005 的回复:]
在学习java的过程中又很多东西不能理解是很正常的,而且很大一部分现在也不需要理解,等时间长了,有了开发的经验,到时有很多东西不用刻意去理解你也可以掌握的,总之实战最终要~~
[/Quote]
同意
yy2004005 2008-10-27
  • 打赏
  • 举报
回复
在学习java的过程中又很多东西不能理解是很正常的,而且很大一部分现在也不需要理解,等时间长了,有了开发的经验,到时有很多东西不用刻意去理解你也可以掌握的,总之实战最终要~~
gs840120 2008-10-27
  • 打赏
  • 举报
回复
紫竹的回答太经典了
老紫竹 2008-10-27
  • 打赏
  • 举报
回复
一句话,这是规定,不需要理由。
还有人为我,为啥用 public ,不能是 ppuubb 呢? ....
lihan6415151528 2008-10-27
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 java2000_net 的回复:]
一句话,这是规定,不需要理由。
还有人为我,为啥用 public ,不能是 ppuubb 呢? ....
[/Quote]

正是!
xql80329 2008-10-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 gs840120 的回复:]
紫竹的回答太经典了
[/Quote]
up
hopegood 2008-10-27
  • 打赏
  • 举报
回复
引用 2 楼 xqh2168 的回复:
static变量是类变量,不属于某个具体的对象,
接口是一系列抽象方法的集合,无法实例化,所以必须是static类型;


这句话不对吧,怎么可能是static类型的
xqh2168 2008-10-26
  • 打赏
  • 举报
回复
static变量是类变量,不属于某个具体的对象,
接口是一系列抽象方法的集合,无法实例化,所以必须是static类型;
接口功能的实现必须依赖实现接口的类,一个类可以实现多个接口,而一个接口又可以被多个类实现,
为了避免出现c++中多重继承基类中相同成员域的处理问题,java中就把接口中的成员域定义为static final类型。
http://topic.csdn.net/u/20080827/18/b4cec228-f050-4102-a323-b88b33308d15.html?1170067566
jiannye 2008-10-26
  • 打赏
  • 举报
回复
如果用protected的话 在不同的包中就不能访问

第二个不清楚你在说什么

第三个是让方法不再能被修改,让类不能再被继承

62,616

社区成员

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

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