青青的博客分享 http://blog.sciencenet.cn/u/qingqing3721 青青的程序世界

博文

JAVAJava中接口里定义的成员变量

已有 2056 次阅读 2011-4-6 07:05 |系统分类:科研笔记

  或则  留意在声明的时分要给变量赋予初值  解释:  首先你要弄清接口的含义. 接口就是提供一种一致的’协议’, 它们是公共的, 静态的, 最终的常量. 相当于全局常量.   笼统类是不’完全’的类, 相当于是接口和详细类的一个中间层. 即满足接口的笼统, 也满足详细的完成.   JAVA假设接口可以定义变量, 但是接口中的方法又都是笼统的, 在接口中无法经过行为来修正属性。 有的人会说了, 没有关系, 这当然没有成果, 但是思索这样的情况。 假设接口A中有一个public访问权限的静态变量a。 依照java的语义, 我们可以不经过完成接口的对象来访问变量a, a=xxx;就可以改变接口中的变量a的值了。 正如笼统类中是可以这样做的, 那么完成接口A的一切对象也都会自动拥有这一改变后的a的值了, 也就是说一个地方改变了a, 一切这些对象中a的值也都跟着变了。 这和笼统类有什么区别呢, 怎么体现接口更高的笼统级别呢, 怎么体现接口提供的一致的协议呢, 就和接口提供的一致的笼统这种思想是冲突的。 所以接口中的属性肯定是常量, 只能读不能改, 这样才能为完成接口的对象提供一个一致的属性。 你以为是要变化的东西, 就放在你自己的完成中, 不能放在接口中去, 对扩展(不同的完成implements)开放, 接口是对开闭原则的一种体现。

https://blog.sciencenet.cn/blog-559014-430062.html

上一篇:C++类构造函数初始化列表
收藏 IP: 117.21.220.*| 热度|

0

发表评论 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-8 04:48

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部