为什么使用接口?


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

Tags in this post...

面试题 相关文章推荐
求高于平均分的学生学号及成绩
Sep 01 面试题
寻找迷宫的一条出路,o通路;X:障碍
Jul 10 面试题
函数只定义了一次, 调用了一次, 但编译器提示非法重定义了-什么问题?
Oct 03 面试题
"序列点" 是什么
Jul 29 面试题
我看到了用指针调用函数的不同语法形式
Jul 16 面试题
如果NULL和0作为空指针常数是等价的,那我到底该用哪一个
Sep 16 面试题
Hashtable 添加内容的方式有哪几种,有什么区别?
Apr 08 面试题
C#如何调用Windows程序打开一个文档
Dec 26 面试题
什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
Jan 19 面试题
Linux上比较文件的命令都有哪些
Sep 28 面试题
在浏览器端如何得到服务器端响应的XML数据
Nov 24 面试题
Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型
Oct 30 面试题
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
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
Windows下PHP5和Apache的安装与配置
2006/09/05 PHP
在数据量大(超过10万)的情况下
2007/01/15 PHP
PHP输入流php://input介绍
2012/09/18 PHP
PHP封装的一个支持HTML、JS、PHP重定向的多功能跳转函数
2014/06/19 PHP
PHP SESSION的增加、删除、修改、查看操作
2015/03/20 PHP
PHP编程实现阳历转换为阴历的方法实例
2017/08/08 PHP
PHP递归遍历文件夹去除注释并压缩php源代码的方法示例
2018/05/23 PHP
JavaScript中的Location地址对象
2008/01/16 Javascript
jquery 关键字“拖曳搜索”之“拖曳”以及 图片“提示自适应放大”效果 的实现
2010/04/18 Javascript
js创建一个input数组并绑定click事件的方法
2014/06/12 Javascript
处理文本部分内容的TextRange对象应用实例
2014/07/29 Javascript
详解iframe与frame的区别
2016/01/13 Javascript
angular route中使用resolve在uglify压缩后问题解决
2016/09/21 Javascript
常用js,css文件统一加载方法(推荐) 并在加载之后调用回调函数
2016/09/23 Javascript
Angularjs使用ng-repeat中$even和$odd属性的注意事项
2016/12/31 Javascript
Vue中添加过渡效果的方法
2017/03/16 Javascript
详解Vue 实例中的生命周期钩子
2017/03/21 Javascript
Vue路由模块化配置的完整步骤
2019/08/14 Javascript
扫微信小程序码实现网站登陆实现解析
2019/08/20 Javascript
使用React-Router实现前端路由鉴权的示例代码
2020/07/26 Javascript
请求时token过期自动刷新token操作
2020/09/11 Javascript
Vue+Java 通过websocket实现服务器与客户端双向通信操作
2020/09/22 Javascript
JavaScript WeakMap使用详解
2021/02/05 Javascript
python检索特定内容的文本文件实例
2018/06/05 Python
Python列表生成式与生成器操作示例
2018/08/01 Python
python psutil模块使用方法解析
2019/08/01 Python
Pytorch反向求导更新网络参数的方法
2019/08/17 Python
python实现信号时域统计特征提取代码
2020/02/26 Python
html5基础教程常用技巧整理
2013/08/20 HTML / CSS
详解HTML5中rel属性的prefetch预加载功能使用
2016/05/06 HTML / CSS
阿迪达斯丹麦官网:adidas丹麦
2016/10/01 全球购物
Lulu Guinness露露·吉尼斯官网:红唇包
2019/02/03 全球购物
描述一下JVM加载class文件的原理机制
2013/12/08 面试题
路政管理专业推荐信
2013/11/11 职场文书
勇敢的心观后感
2015/06/09 职场文书
600字作文之感受大自然
2019/11/27 职场文书