为什么接口里声明的都是常量
来源:互联网 发布:linux中php编译安装 编辑:程序博客网 时间:2024/05/06 04:57
这是一道面试题,有些人可能拿到这到题就会困惑,接口里声明的都是常量,这是j2se里规定,还有什么理由吗?确实在我看到这到问题的时候也是这么想的,但仔细一考虑也发现这道的意义所在。
接口中不允许方法的实现,而抽象类是允许方法实现的及定义变量的,因此我们可以看出接口是比抽象类更高层次的抽象。如果接口可以定义变量,但是接口中的方法又都是抽象的,在接口中无法通过行为(例如set()方法)来修改属性。那么有些人就会提出可以通过实现接口的类的实例来修改接口的属性。那好,如果接口中有一变量c,我们通过实现它的A类对象改变了c的值,那么实现接口的B类,C类中的c变量都要跟着改变,可想而知这样就会造成混乱,很多想要实现接口的类就不知道接口里现在c变量到底是什么值,因为接口是在变的,它不再是那种高层的抽象,而是带了可变的成分。所谓的抽象就是把一些不可变的东西放在一起,而可变的东西往往放在实现里面。
所以我们深思接口的本意所在,实际上它是对一类事物属性和行为的高层次抽象,它体现的是OCP(对修改关闭,对扩展开放)原则,这也是我们软件开发中一直所追求。
0 0
- 为什么接口里声明的都是常量
- 接口的变量为什么必须是常量!
- 为什么接口中定义的变量都是final static的
- 为什么web项目里面都是面向接口编程的啊?
- 为什么接口中定义的变量必须为常量?
- 接口中定义的变量为什么是常量
- 为什么用接口存常量是一种不良的习惯
- 常量放在java接口里还是java类里的问题
- 为什么DEBUG的时候,内存里都是“烫烫烫烫烫烫烫烫烫……”呢?
- 为什么大神级程序的C语言代码里到处都是goto?
- java接口为什么只能定义常量
- 为什么接口中只能定义常量?
- 为什么CPU到蓝牙的音频传输都是用的PCM接口呢
- Java中声明常量为什么用static修饰
- 常量应该存放在类里还是接口里?
- 为什么接口里面的值必须是常量final且静态static
- 为什么抽象类实现接口的时候不需要重写接口里的方法?
- ActionSupport类里的常量
- 管理培训决定企业生死的5个层面
- PAT1098 Insertion or Heap Sort
- iOS开发之涂鸦板
- Andriod中绘(画)图----Canvas的使用详解
- Qt树形控件QTreeView使用1——节点的添加删除操作
- 为什么接口里声明的都是常量
- Assembly的load, loadfrom, loadfile方法总结
- hadoop之combiners编程
- list与vector容器如何处理才能避免内存增长?
- Zookeeper选主流程和同步流程
- ubuntu系统中PATH变量被修改,导致系统一直停留在登陆界面
- 读取文件2+root画图
- jquery比较两个数组是否相等,且找出不等的值。
- android调用微信分享应用