免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6500 | 回复: 8
打印 上一主题 下一主题

为什么接口中不能定义变量呢? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-04-27 09:57 |只看该作者 |倒序浏览
为什么接口中不能定义变量,而只能是常量和方法呢?

论坛徽章:
0
2 [报告]
发表于 2006-04-27 11:29 |只看该作者
因为 所以 科学道理! - -

论坛徽章:
0
3 [报告]
发表于 2006-04-27 12:59 |只看该作者
接口是用来表示一种能力(Ability)的,本身是一种抽象,而数据抽象的最基本原则就是隐藏细节,变量就是一种细节

论坛徽章:
0
4 [报告]
发表于 2006-04-27 13:12 |只看该作者
精辟!

论坛徽章:
0
5 [报告]
发表于 2006-04-27 13:32 |只看该作者
谢谢版主

论坛徽章:
0
6 [报告]
发表于 2006-04-27 13:48 |只看该作者
嗯~樱木版主说的有理,我以前只能认识到是规定而已

论坛徽章:
0
7 [报告]
发表于 2006-04-27 19:28 |只看该作者
Java接口应当仅仅用来声明一个新的类型,
而一个类型展示给外界的只是它所具有的各种操作或者说能力.
这种类型的一个具体实现是如何具有这种能力的,
按信息隐藏的原则, 当然是不能让外界得知了.

接口是具体实现类展示给外界的, 如果其中可以定义变量,
那不就相当于给外界说明了这些具体实现类是如何实现的吗.

所以接口是不应该定义变量的.

呵呵, 希望能理解我所说的.

论坛徽章:
0
8 [报告]
发表于 2006-04-27 23:04 |只看该作者
嗯,对啊。接口可以多重实现。若定义变量岂非容易产生二义性嘛

论坛徽章:
0
9 [报告]
发表于 2006-04-28 14:01 |只看该作者

谁说的?

接口仍然可以拥有属性,只不过默认都是static罢了。
实现接口的实体类是可以使用有访问权限的属性的。
也就是说接口里边的private属性是没有任何意义的(因为它不能被访问)。
所以你用private或protected的话,编译是不通过的。
但是friendly,public,static(写不写一样)这些是可以的。

[ 本帖最后由 jakieyoung 于 2006-4-28 14:08 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP