为什么使用接口?


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

Tags in this post...

面试题 相关文章推荐
SQL Server 2000数据库的文件有哪些,分别进行描述
Mar 30 面试题
Oracle快照(snapshot)
Mar 13 面试题
南京软件公司的.net程序员笔试题
Aug 31 面试题
上海天奕面试题笔试题
Apr 19 面试题
NET程序员上机面试题
May 23 面试题
internal修饰符起什么作用
Dec 16 面试题
网上常见的一份Linux面试题(多项选择部分)
Feb 07 面试题
几个常见的软件测试问题
Sep 07 面试题
用Java语言将一个键盘输入的数字转化成中文输出
Jan 25 面试题
如果重写了对象的equals()方法,需要考虑什么
Nov 02 面试题
如何在Shell脚本中使用函数
Sep 06 面试题
J2EE面试题
Mar 14 面试题
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
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
NOT NULL 和NULL
2007/01/15 PHP
openflashchart 2.0 简单案例php版
2012/05/21 PHP
分享一下贝贝成长进度的php代码
2012/09/14 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
2017/12/21 PHP
php中上传文件的的解决方案
2018/09/25 PHP
js实现拖拽 闭包函数详细介绍
2012/11/25 Javascript
checkbox设置复选框的只读效果不让用户勾选
2013/08/12 Javascript
JQuery右键菜单插件ContextMenu使用指南
2014/12/19 Javascript
jQuery拖拽排序插件制作拖拽排序效果(附源码下载)
2016/02/23 Javascript
在localStorage中存储对象数组并读取的方法
2016/09/24 Javascript
vue+iview+less 实现换肤功能
2018/08/17 Javascript
js实现导航跟随效果
2018/11/17 Javascript
解决前后端分离 vue+springboot 跨域 session+cookie失效问题
2019/05/13 Javascript
Node.js学习教程之Module模块
2019/09/03 Javascript
巧用Python装饰器 免去调用父类构造函数的麻烦
2012/05/18 Python
Django中URL视图函数的一些高级概念介绍
2015/07/20 Python
使用Nginx+uWsgi实现Python的Django框架站点动静分离
2016/03/21 Python
Python中应该使用%还是format来格式化字符串
2018/09/25 Python
python 遍历列表提取下标和值的实例
2018/12/25 Python
Django 简单实现分页与搜索功能的示例代码
2019/11/07 Python
PyQt5的QWebEngineView使用示例
2020/10/20 Python
Python3 + Appium + 安卓模拟器实现APP自动化测试并生成测试报告
2021/01/27 Python
python 如何用urllib与服务端交互(发送和接收数据)
2021/03/04 Python
CSS3实现银灰色动画效果的导航菜单代码
2015/09/01 HTML / CSS
Emporio Armani腕表天猫官方旗舰店:乔治·阿玛尼为年轻人设计的副线品牌
2017/07/02 全球购物
Bose英国官方网站:美国知名音响品牌
2020/01/26 全球购物
2014新年寄语
2014/01/20 职场文书
银行开业庆典方案
2014/02/06 职场文书
1亿有多大教学反思
2014/05/01 职场文书
颐和园英文导游词
2015/01/30 职场文书
导游词范文
2015/02/13 职场文书
小学同学聚会感言
2015/07/30 职场文书
《扇形统计图》教学反思
2016/02/17 职场文书
2016年九九重阳节活动总结
2016/04/01 职场文书
2019暑假阅读倡议书
2019/06/24 职场文书
解决goland 导入项目后import里的包报红问题
2021/05/06 Golang