一:什么是接口
一个接口只有方法的特征或一些常量,而没有方法的实现,因此这些方法在不同的地方被实现时,可以具有完全不同的行为。一个类可以实现多个接口但不能继承多个类,所以利用接口还可以实现类似多重继承的功能。实现一个共同的接口的两个类常常完全不同,但是有一组相同的方法和常数,一些看上去不相干的类,可以因为相类似的服务而具有相同的接口.
二:接口是对可插入性的保证
一个对象需要知道其他的一些对象,并且与其他对象发生相互作用以完成一项工作。现在要在系统中加入一个新的类C,问题是已有某些类可以帮新类完成一部分的功能.这时候怎么办?你全新写这个类吗?还是通过继承来得到一些已实现的功能?答案很简单我们都会选择后者。但问题是有两个功能是分别写在两个类(A,B)里面呢?这时候我们要怎么办? Java不支持多重继承,有一个可以解决的办法是让A继承B,我们再用C继承A,这样是可以得到两个我们想要的功能(更好一点的办法就是把A和B的功能放到一个抽象类AB里面,我们的C可以继承AB),但如果我们要100个类里的一个方法呢?这时候难道我们也用此方法去得到我们想要的功能吗?如果这样整个系统的结构将发生革命性的改变!这完全不符合"开-闭"原则。这时接口就显示出其妙处来。在一个类的等级结构中的任何一类都可以实现一个接口,这个接口会影响到此类的所有子类,但不会影响到此类的任何超类,此类不得不实现这个接口所规定的方法,而其子类则可以从此类自动继承得到这些方法,当然也可以置换掉这些方法,这时候我们也就说这些子类具有可插性。
(1)关联可插性
一个对象需要完成一项任务,所以要知道其他对象,并且调用其他对象的方法,这个对象对其他对象的知识叫做关联。如果一个关联不是针对一个具体的类,而是针对一个接口,那么任何实现这个接口的类就都可以满足要求,换言之,当前对象并不在意所关联的是哪一个具体的类,而仅仅关心这个类是否实现了某一个接口,这样就可以动态地将这个关的类转换到另一个个体类(!!如何理解)
(2)调用的可插入性
同样一个对象不可避免需要调用其他对象的方法,这种调用不一定非得是某一个个体的类,而可以是一个接口,这样一来,任何实现了这个接口的个体类都可以被当前对象调用,而当前对象到底调用的是哪一个个体类的实现则可以动态决定.
(3)类型
A:最好用接口来进行变量类型的声明,参量类型的声明,方法的返回值类型声明,以及数据类型的转换等,其次是考虑用抽象类和做到这些。
B:如果一个类已经有一个主要的超类型,那么通过实现一个接口,这个类可以拥有另一个次要的超类型,这种次的的超类型就叫做混合类型。如java.util.TreeMap继承了AbstractMap,它的主要类型是AbstractMap,同时它双实现了Cloneable和Serializable,这两个次要类型分别说明TreeMap是可以克隆和串行化的
分享到:
相关推荐
第三章:Java基础语法; 第四章:数组的应用; 第五章:面向对象的Java编辑; 第六章:接口与内部类; 第七章:集合的应用; 第八章:异常和反射; 第九章:初识AWT和Swing; 第十章:Swing中的常用组件; 第十一章...
java编写的调用国内第三方平台发送短信的例子及相关文档
一、配置要求 1、MATLAB版本要求:至少R2006b版本(MATLAB 7.3),检查MATLAB安装文件夹下toolbox中是否有javabuilder这一项。 2、安装JDK1.5版本以上。 二、环境配置 ...三、用JAVA Builder创建JAVA组件 ……
JAVA中间转发层开发的DEMO,当第三方API出现问题的时候,可以在自己的中间层做一些处理,不会对前端造成影响,做到业务隔离。
使用Java获取制定接口的数据,使用了httpserverletrequest类。
用接口设计并实现面积与周长计算 要求:①定义一个接口,其中包含一个计算面积的抽象方法和一个计算周长的抽象方法;②输入数据为圆的半径、三角形的三条边长、矩形的长和宽,对于用户的输入要有友好提示;③程序...
1、封装WeatherInfo实体类,对接口返回的结果进行映射的实体类 2、WeatherUtils类,负责调用第三方天气预报api接口处理的工具类,包括根据城市查询等,返回的格式是json 3、test类,对接口进行功能性测试
1、Java有两种实现多线程的方式:通过Runnable接口、通过Thread直接实现,请掌握这两种实现方式,并编写示例程序。 2、多线程是并发执行的,交替占有cpu执行,请编写示例程序,并观察输出结果。 3、采用线程同步方法...
Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM...
java网站连接电子商务、支付宝接口java网站连接电子商务、支付宝接口java网站连接电子商务、支付宝接口java网站连接电子商务、支付宝接口
增加default方法:又叫做接口扩展方法,即在不破坏java现有实现架构的情况下能往接口里增加新方法, default关键字可以给接口添加一个非抽象的方法实现,子类可以直接调用! 如果想对接口增加一个新方法,那么需要对...
java 第三方短信接口 demo及文档。此接口采用乐信接口。可以通过HTTP POST 请求对接、回调
7. **标准化库**:Java提供了丰富的标准库,包括各种类和接口,提供了很多常用功能的实现,方便开发人员快速开发应用程序。 8. **可扩展性**:Java支持模块化开发和插件机制,允许开发人员扩展和集成第三方库和框架...
该工具类是java 调用第三方接口时需要使用到的。HttpClientUtil 包含get和post方法。
java调用需要上传文件的接口源码,其中含调用案例,调用工具,下载下来即可使用
计算机后端-Java-Java核心基础-第20章 多线程 18. 创建多线程的方式三:实现Callable接
仿口袋APP实体店竞彩JAVA源码,前端uniapp,后端...但是页面会越来越好服务端:Java 爬虫:Java 前端:uniapp 可编译 安卓 苹果 数据库MYSQL 支付接口:支付宝 微信 第三方都可以接 环境配置:有部署文档说明 源码可二开
纯java(没有使用第三方的jar包)调用百度翻译接口的简单实例.