一、接口小知识
1、接口是什么?
接口是一个特殊的类,这个类里面只有抽象方法与全局常量。
2、接口的定义与形式?
在Java中,使用interface关键字来实现接口的定义。
interface A{ //定义接口
public static final String MSG = "hello,my friend!"; //全局常量
public abstract void print(); //抽象方法
}
接口的简化定义(省略abstract和static final ,但仍然代表全局常量和抽象方法):
interface A{
String MSG = "hello,my friend!";
public void print();
}
3、接口的实现
以接口A为例,实现接口A的一个子类B,实现的关键字为implements
class B implements A{
public void print(){ //覆写接口A的抽象方法
//可以为空,但必须要有方法体
}
}
4、接口的使用原则
接口必须要有子类,一个子类可以使用implements关键字实现多个接口(在接口之间加","即可),避免单继承仅局限
接口的子类(如果不是抽象类),必须覆写接口中的全部抽象方法
接口的对象可以利用子类对象的向上转型进行实例化操作
5、接口&抽象类
如果一个子类既要继承抽象类又要实现接口,那么应该采用先继承(extends)后实现接口(implements)的顺序完成。举例,假设C为抽象类,A,B为接口,X类继承抽象类C,实现A和B两个接口。
class X extends C implements A,B{
//覆写所含的所有抽象方法
}
一个抽象类可以继承一个抽象类或者实现多个接口。但是一个接口却不能继承抽象类,但一个接口可以使用extends关键字同时继承多个父接口。
6、总结
Java中,接口主要用于结局单继承局限的问题。
二、接口知识进阶
虽然从接口本身的概念上来讲只能够由抽象方法和全局常量组成,但是所有的内部结构不受这些要求限制,也就是说在接口里面可以定义普通内部类、抽象内部类、内部接口。
1、接口里定义抽象类,可以选择性继承。
2、接口内部如果使用static去定义一个内部接口,该接口表示是一个外部接口,用外部接口.内部接口表示,子类可以直接实现A.B接口并覆写接口中的抽象。
三、接口的实际应用——标准
日常生活中的USB接口。利用USB接口可以连接U盘、打印机、MP3等设备。
在进行代码开发,一定要首先开发出USB接口标准,有了标准,计算机(计算机提供对USB接口标准的支持)才可以去使用这些标准,设备厂商(例如U盘、打印机、MP3)才可以设计USB设备。
1、定义USB标准
//定义USB标准,定义标准一定就是接口
interface USB {
public void start(); //USB设备开始工作
public void stop(); //USB设备停止工作
}
2、定义计算机(计算机提供对USB接口标准的支持)类
class Computer {
public void plugin(USB usb){ //插入USB接口设备(子类对象)
usb.start();
usb.stop();
}
}
3、定义U盘子类
class Flash implements USB{
public void start(){
System.out.println("U盘开始使用");
}
public void stop(){
System.out.println("U盘停止使用");
}
}
4、定义打印机
class Print implements USB {
public void start(){
System.out.println("打印机开始工作");
}
public void stop(){
System.out.println("打印机停止工作");
}
}
按照USB标准设计USB设备,这样都可以在电脑的plugin()方法上去使用
5、测试代码
public class TestDemo {
public static void main(String args[]){
Computer c = new Computer();
c.plugin(new Flash());
c.plugin(new Print());
}
}
6、测试结果
7、总结
本程序首先实例化了一个Computer类的对象,然后计算机对象就可以使用不同USB设备(根据传入不同的USB接口子类对象)
最后
下一节会分享接口的应用,两个在java开发中常用的设计模式,分别是工厂设计模式(Factory)和代理设计模式(Proxy)。
最近课程比较多,加上还会有一些作业和老师那边的事情。更新会慢一点。但一定会坚持下去,一起加油,好吗?感谢大家的关注与支持。谢谢Java练成计划的朋友们!分享一首歌,下次见
资源获取
1、加我好友,回复——好友
2、从基础到开发的分阶段、一整套的视频资源,回复——视频
3、基础书籍推荐——第一行代码Java,回复——书籍
4、30张图讲清java基础知识点,回复——思维导图
5、Java学习技术路线,回复——路线
6、加Java练成计划学习群,可添加好友,备注加群
你点的每一个在看,我都认真当成了喜欢...
专注Java学习
打通基础学习与开发实践、开发实践与底层实现
作者:长风破
长按二维码关注