为什么使用接口?


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

Tags in this post...

面试题 相关文章推荐
普通PHP程序员笔试题
Jan 01 面试题
String这个类型的class为何定义成final?
Nov 13 面试题
What is the purpose of Void class? Void类的作用是什么?
Oct 31 面试题
计算s=f(f(-1.4))的值
May 06 面试题
Android面试题附答案
Dec 08 面试题
Ado与Ado.net的相同与不同
Dec 08 面试题
如何选择使用结构还是类
May 30 面试题
LINUX下线程,GDI类的解释
Apr 17 面试题
中科方德软件测试面试题
Apr 21 面试题
你经历的项目中的SCM配置项主要有哪些?什么是配置项?
Nov 04 面试题
EJB与JAVA BEAN的区别
Aug 29 面试题
继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?
Nov 18 面试题
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
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 作用域解析运算符(::)
2010/07/27 PHP
PHP fastcgi模式上传大文件(大约有300多K)报错
2014/09/28 PHP
php验证邮箱和ip地址最简单方法汇总
2015/10/30 PHP
PHP封装的非对称加密RSA算法示例
2018/05/28 PHP
精解window.setTimeout()&window.setInterval()使用方式与参数传递问题!
2007/11/23 Javascript
JS维吉尼亚密码算法实现代码
2010/11/09 Javascript
jQuery实现类似滑动门切换效果的层切换
2013/09/23 Javascript
javascript自动给文本url地址增加链接的方法分享
2014/01/20 Javascript
分享28款免费实用的 JQuery 图片和内容滑块插件
2014/12/15 Javascript
详解vue模拟加载更多功能(数据追加)
2017/06/23 Javascript
vue-router路由与页面间导航实例解析
2017/11/07 Javascript
JS基于对象的链表实现与使用方法示例
2019/01/31 Javascript
nodejs使用async模块同步执行的方法
2019/03/02 NodeJs
javascript for循环性能测试示例
2019/08/07 Javascript
javascript中的with语句学习笔记及用法
2020/02/17 Javascript
[48:53]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第一场
2014/05/26 DOTA
go和python变量赋值遇到的一个问题
2017/08/31 Python
flask中主动抛出异常及统一异常处理代码示例
2018/01/18 Python
简单实现python数独游戏
2018/03/30 Python
python连接mongodb密码认证实例
2018/10/16 Python
python设定并获取socket超时时间的方法
2019/01/12 Python
python实现读取excel文件中所有sheet操作示例
2019/08/09 Python
对pytorch中的梯度更新方法详解
2019/08/20 Python
python查找特定名称文件并按序号、文件名分行打印输出的方法
2020/04/24 Python
python 星号(*)的多种用途
2020/09/21 Python
仿CSDN Blog返回页面顶部功能实现原理及代码
2013/06/30 HTML / CSS
丹麦优惠购物网站:PLUSSHOP
2019/03/24 全球购物
俄罗斯在线大型超市:ТутПросто
2021/01/08 全球购物
幼师自荐信范文
2013/10/06 职场文书
就业意向书范文
2014/04/01 职场文书
大学新学期计划书
2014/04/28 职场文书
软环境建设心得体会
2014/09/09 职场文书
党的群众路线教育实践活动批评与自我批评范文
2014/10/16 职场文书
python scrapy简单模拟登录的代码分析
2021/07/21 Python
使用RedisTemplat实现简单的分布式锁
2021/11/20 Redis
关于CSS自定义属性与前端页面的主题切换问题
2022/03/21 HTML / CSS