接口
来源:互联网 发布:井柏然毁了肖奈 知乎 编辑:程序博客网 时间:2024/05/21 19:31
一、基本概念
接口:类的内部只存在全局常量和抽象方法
接口就是全局常量和抽象方法的集合,使用interface关键字定义接口
范例1:定义接口
定义的关键字是有区别的,但是他的常量和抽象方法与之前没有区别,对于接口里面有抽象方法,所以一定无法使用关键字new进行接口对象的实例化;
1. 接口的使用原则:
1)接口必须有子类,子类使用implements实现接口,一个子类可以同时实现多个 (打破了抽象类单继承的局限)
2)接口的子类(如果不是抽象类),则一定要覆写接口中的全部抽象方法;
3)接口对象可以利用子类的向上转型,进行实例化操作;
范例2:
现在已经学习了普通类,抽象类,接口三个概念;若一个类既要继承抽象类,又要实现接口的话,则应该先继承(extends父类)后实现(implements接口,.....)
范例3:先继承再实现
2. 说明
1)接口中的全部方法访问权限都是public,不管写与不写都如此;在工作中大多方法 规范都是由接口规定的,只要方法都建议用public定义;
2)在接口里面是有抽象方法和全局常量组成,所以在定义时以下两种方式相同:
3)一般在定义接口是定义方法是比较多的,全局常量比较上
4)一个抽象类可以使用implements实现多个接口;但接口不能继承抽象类,接口却可以使用extends继承多个父接口
5)任何内部类的结构实际上都不受定义的限制,所以在一个接口里也可以继续定义内 部接口或内部抽象类,而且使用static定义的内部接口就是一个外部接口
范例4:说明第4条一个抽象类可以实现多个接口
范例5:说明4,接口可以继承接口
范例6:说明第5条static定义内部接口就是一个外部接口
3. 实际中接口有三大核心功能
1)使用接口定义规范标准
2)接口表示一种能力
3)将服务器的远程视图暴露给客户端
二、接口应用——定义规范标准
“接口”名词,例如:插座、交流语言、USB。通过程序模拟:打印机、U盘,都可以插在电脑的USB接口上使用,而是用规则有工作、退出。设计如下:
电脑是一类,打印机、等是一类,两个无关的类的连接,一定通过接口来完成,有借口定义出操作的标准。
范例7:代码实现,定义接口标准
测试代码
而在此工程中,发现电脑和打印机还是两个独立的类,没直接的定义联系,但又标准联系。
这样的形式在生活中随处可见。
如:本商场不允许宠物入内;人吃水果;
结论:
接口(和抽象类)就是对类的再次抽象,但是以接口为主(接口类具备继承局限,而接口没有)
范例8:
编写一下的一段程序,本程序没有语法错误,但有结构应用错误。
本程序如果在实际中使用,有可能出现什么问题?
本程序在主方法(客户端)直接使用了关键字new实例化了接口的子类对象,那么就表示这个时候在客户端,fruit接口就与apple子类绑定在一起了,如果要更改子类,则需要修改客户端代码,而这种形式是不可能使用的。最好的设计是后面可以动,但是客户端操作不动。
即:“A-->B”属于点对点的操作就会造成扩展上的麻烦,那么可以借鉴JVM的操作原理(程序找到JVM,由JVM操作系统,相当于A-->B-->C),这样加入第三方容易程序的维护
修改范例8代码:
- 接口
- 接口
- 接口
- 接口
- 接口
- 接口
- 接口
- 接口
- 接口
- 接口
- 接口
- 接口
- 接口
- 接口
- 接口
- 接口
- 接口
- 接口
- wireshark解密不通过浏览器的https报文
- 关押罪犯 并查集+二分
- JDK中java.io.OutputStream源码
- mysql中的analyze与optimize表
- 树链剖分
- 接口
- |Hdu 1542|线段树|Atlantis
- C/S和B/S的区别
- 300. Longest Increasing Subsequence
- 【Android实测】多个apk类似-多渠道共存打包
- 阿里巴巴Java代码开发规范
- Serlvet知新
- c++知识点
- 深入理解DOM事件类型系列第六篇——加载事件