为什么使用接口?


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

Tags in this post...

面试题 相关文章推荐
介绍下WebSphere的安全性
Jan 31 面试题
C语言基础笔试题
Apr 27 面试题
C语言笔试集
Jul 24 面试题
C语言变量的命名规则都有哪些
Dec 27 面试题
什么是事务?事务有哪些性质?
Mar 11 面试题
路由表示做什么用的?在linux环境中怎么来配置一条默认路由?
Jun 07 面试题
Can a struct inherit from another class? (结构体能继承类吗)
Jul 22 面试题
某公司部分笔试题
Nov 05 面试题
恒华伟业笔试面试题
Feb 26 面试题
介绍一下结构化程序设计方法和面向对象程序设计方法的区别
Jun 27 面试题
创立科技Java面试题
Nov 29 面试题
为什么说Ruby是一种真正的面向对象程序设计语言
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
php中数组首字符过滤功能代码
2012/07/31 PHP
PHP之生成GIF动画的实现方法
2013/06/07 PHP
如何使用php判断所处服务器操作系统的类型
2013/06/20 PHP
PHP包含文件函数include、include_once、require、require_once区别总结
2014/04/05 PHP
php加速器eAccelerator的配置参数、API详解
2014/05/05 PHP
php缩放gif和png图透明背景变成黑色的解决方法
2014/10/14 PHP
妙用Jquery的val()方法
2012/06/27 Javascript
jquery next nextAll nextUntil siblings的区别介绍
2013/10/05 Javascript
Jquery 获取对象的几种方式介绍
2014/01/17 Javascript
js完美的div拖拽实例代码
2014/01/22 Javascript
Node.js抓取中文网页乱码问题和解决方法
2015/02/10 Javascript
JS 组件系列之 bootstrap treegrid 组件封装过程
2017/04/28 Javascript
Angular中ng-options下拉数据默认值的设定方法
2017/06/21 Javascript
vuejs+element-ui+laravel5.4上传文件的示例代码
2017/08/12 Javascript
jQuery Layer弹出层传值到父页面的实现代码
2017/08/17 jQuery
浅谈NodeJs之数据库异常处理
2017/10/25 NodeJs
Vue 中axios配置实例详解
2018/07/27 Javascript
vue.js单文件组件中非父子组件的传值实例
2018/09/13 Javascript
初探Vue3.0 中的一大亮点Proxy的使用
2018/12/06 Javascript
详解ES6 CLASS在微信小程序中的应用实例
2020/04/24 Javascript
keep-alive保持组件状态的方法
2020/12/02 Javascript
Python类方法__init__和__del__构造、析构过程分析
2015/03/06 Python
搭建Python的Django框架环境并建立和运行第一个App的教程
2016/07/02 Python
Python 基础教程之str和repr的详解
2017/08/20 Python
pandas dataframe添加表格框线输出的方法
2019/02/08 Python
python print出共轭复数的方法详解
2019/06/25 Python
基于Tensorflow:CPU性能分析
2020/02/10 Python
Python编程快速上手——强口令检测算法案例分析
2020/02/29 Python
Python调用接口合并Excel表代码实例
2020/03/31 Python
美国卡车、吉普车和SUV零件网站:4 Wheel Parts
2016/11/24 全球购物
计算机专业毕业生自我鉴定
2014/01/16 职场文书
总经理司机岗位职责
2014/02/06 职场文书
餐饮营销方案
2014/02/23 职场文书
《悯农》教学反思
2014/04/28 职场文书
2015年幼儿园国庆节活动总结
2015/07/30 职场文书
基于Apache Hudi在Google云构建数据湖平台的思路详解
2022/04/07 Servers