为什么使用接口?


Posted in 面试题 onAugust 13, 2014
两个类中的两个类似的功能,调用他们的类动态的决定一种实现,那他们提供一个抽象父类,子类分别实现父类所定义的方法。
问题的出现:Java是一种单继承的语言,一般情况下,哪个具体类可能已经有了一个超类,解决是给它的父类加父类,或者给它父类的父类加父类,只到移动到类等级结构的最顶端。这样一来,对一个具体类的可插入性的设计,就变成了对整个等级结构中所有类的修改。
接口是可插入性的保证。
在一个等级结构中的任何一个类都可以实现一个接口,这个接口会影响到此类的所有子类,但不会影响到此类的任何超类。此类将不得不实现这个接口所规定的方 法,而其子类可以从此类自动继承这些方法,当然也可以选择置换掉所有的这些方法,或者其中的某一些方法,这时候,这些子类具有了可插入性(并且可以用这个 接口类型装载,传递实现了他的所有子类)。
我们关心的不是那一个具体的类,而是这个类是否实现了我们需要的接口。
接口提供了关联以及方法调用上的可插入性,软件系统的规模越大,生命周期越长,接口使得软件系统的灵活性和可扩展性,可插入性方面得到保证。

Tags in this post...

面试题 相关文章推荐
怎样比较两个类型为String的字符串
Aug 17 面试题
JDO的含义
Nov 17 面试题
String这个类型的class为何定义成final?
Nov 13 面试题
用你熟悉的语言写一个连接ORACLE数据库的程序,能够完成修改和查询工作
Jun 11 面试题
一套VC试题
Jan 23 面试题
C#面试问题
Jul 29 面试题
Does C# support multiple inheritance? (C#支持多重继承吗)
Jan 04 面试题
C#实现启动一个进程
Oct 01 面试题
linux面试题参考答案(4)
Sep 21 面试题
什么是组件架构
May 15 面试题
什么时候用assert
May 08 面试题
介绍下Java中==和equals的区别
Sep 01 面试题
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
Sep 09 #面试题
什么是接口(Interface)?
Feb 01 #面试题
你常见到的runtime exception
Sep 05 #面试题
PHP高级工程师面试问题推荐
Jan 18 #面试题
PHP开发工程师面试问题集锦
Nov 01 #面试题
一份比较全的PHP面试题
Jul 29 #面试题
Yahoo-PHP面试题4
May 05 #面试题
You might like
与文件上传有关的php配置参数总结
2013/06/14 PHP
执行、获取远程代码返回:file_get_contents 超时处理的问题详解
2013/06/25 PHP
PHP添加Xdebug扩展的方法
2014/02/12 PHP
php四种定界符详解
2017/02/16 PHP
PHP实现的AES 128位加密算法示例
2019/09/16 PHP
网站页面自动跳转实现方法PHP、JSP(下)
2010/08/01 Javascript
javascript 星级评分效果(手写)
2012/12/24 Javascript
公共js在页面底部加载的注意事项介绍
2013/07/18 Javascript
jQuery实现当前页面标签高亮显示的方法
2015/03/10 Javascript
js实现的tab标签切换效果代码分享
2015/08/25 Javascript
使用jquery+CSS3实现仿windows10开始菜单的下拉导航菜单特效
2015/09/24 Javascript
以Python代码实例展示kNN算法的实际运用
2015/10/26 Javascript
原生JS实现旋转木马式图片轮播插件
2016/04/25 Javascript
jQuery.Uploadify插件实现带进度条的批量上传功能
2016/06/08 Javascript
Vue实现路由跳转和嵌套
2017/06/20 Javascript
微信小程序block的使用教程
2018/04/01 Javascript
深入学习JavaScript 高阶函数
2019/06/11 Javascript
node.js中npm包管理工具用法分析
2020/02/14 Javascript
react PropTypes校验传递的值操作示例
2020/04/28 Javascript
JavaScript实现页面高亮操作提示和蒙板
2021/01/04 Javascript
[01:32]2016国际邀请赛中国区预选赛IG战队首日赛后采访
2016/06/27 DOTA
详解Python中的序列化与反序列化的使用
2015/06/30 Python
示例详解Python3 or Python2 两者之间的差异
2018/08/23 Python
详解pandas安装若干异常及解决方案总结
2019/01/10 Python
Pycharm中安装Pygal并使用Pygal模拟掷骰子(推荐)
2020/04/08 Python
实现Python3数组旋转的3种算法实例
2020/09/16 Python
Python内存泄漏和内存溢出的解决方案
2020/09/26 Python
matplotlib教程——强大的python作图工具库
2020/10/15 Python
css3图片边框border-image的用法
2017/06/30 HTML / CSS
美国折扣香水网站:The Perfume Spot
2020/12/12 全球购物
程序集与命名空间有什么不同
2014/07/25 面试题
影视艺术学院毕业生自荐信
2013/11/13 职场文书
学生实习介绍信
2014/01/15 职场文书
通信研究生自荐信
2014/02/01 职场文书
钱塘江大潮导游词
2015/02/03 职场文书
淮阳太昊陵导游词
2015/02/10 职场文书