为什么使用接口?


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

Tags in this post...

面试题 相关文章推荐
运行时异常与一般异常有何异同?
Jan 05 面试题
Java面试题:请问一下代码输出是什么
May 27 面试题
C和C++经典笔试题附答案解析
Aug 18 面试题
如何判断一段程序是由C 编译程序还是由C++编译程序编译的
Aug 04 面试题
什么是事务?为什么需要事务?
Jan 09 面试题
什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?
Aug 13 面试题
STP的判定过程
Oct 01 面试题
介绍一下EJB的分类及其各自的功能及应用
Aug 23 面试题
AJAX应用和传统Web应用有什么不同
Aug 24 面试题
GC是什么?为什么要有GC?
Dec 08 面试题
内部类的定义、种类以及优点
Oct 16 面试题
Ruby如何定义一个类
Oct 08 面试题
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
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
Sorting Array Values in PHP(数组排序)
2011/09/15 PHP
解析PHP无限级分类方法及代码
2013/06/21 PHP
PHP结合jQuery.autocomplete插件实现输入自动完成提示的功能
2015/04/27 PHP
centos7上编译安装php7以php-fpm方式连接apache
2018/11/08 PHP
JavaScript 原型学习总结
2010/10/29 Javascript
jquery判断小数点两位和自动删除小数两位后的数字
2014/03/19 Javascript
AngularJS表格详解及示例代码
2016/08/17 Javascript
vue 2.0组件与v-model详解
2017/03/27 Javascript
Vue表单验证插件Vue Validator使用方法详解
2017/04/07 Javascript
Vuex之理解Getters的用法实例
2017/04/19 Javascript
jQuery实现的form转json经典示例
2017/10/10 jQuery
详解vscode中vue代码颜色插件
2018/10/11 Javascript
vue模块拖拽实现示例代码
2019/03/09 Javascript
vue-mugen-scroll组件实现pc端滚动刷新
2019/08/16 Javascript
node脚手架搭建服务器实现token验证的方法
2021/01/20 Javascript
Python下的subprocess模块的入门指引
2015/04/16 Python
用Python实现web端用户登录和注册功能的教程
2015/04/30 Python
利用Python脚本生成sitemap.xml的实现方法
2017/01/31 Python
Python处理Excel文件实例代码
2017/06/20 Python
Python实现购物车功能的方法分析
2017/11/10 Python
Python实现基本数据结构中队列的操作方法示例
2017/12/04 Python
pytorch 共享参数的示例
2019/08/17 Python
Python控制台输出时刷新当前行内容而不是输出新行的实现
2020/02/21 Python
python GUI编程(Tkinter) 创建子窗口及在窗口上用图片绘图实例
2020/03/04 Python
浅谈CSS3中display属性的Flex布局的方法
2017/08/14 HTML / CSS
CSS3属性 line-clamp控制文本行数的使用
2020/03/19 HTML / CSS
南非最大的在线时尚商店:Zando
2019/07/21 全球购物
某/etc/fstab文件中的某行如下: /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2 请解释其含义
2013/09/18 面试题
2014年开学第一课活动方案
2014/03/06 职场文书
应届生求职信
2014/05/31 职场文书
业务员辞职信范文
2015/03/02 职场文书
综合测评自我评价
2015/03/06 职场文书
违规违纪检讨书范文
2015/05/06 职场文书
2016新教师培训心得体会范文
2016/01/08 职场文书
2016教师学习教育法心得体会
2016/01/19 职场文书
Python使用scapy模块发包收包
2021/05/07 Python