接口(Java)
什么是接口:接口就是一些方法特征的集合,接口是对抽象的抽象。
在java语言中,接口有两种意思:
①概念性的接口,即系统对外提供的所有服务
②指用interface关键字定义的接口,也称为接口类型
特征:
① 接口中的成员变量默认都是public、static、final类型的,必须被显示初始化
②接口中的方法默认都是public、abstract类型的
③接口没有构造方法,不能被实例化
④一个接口不能实现另一个接口,但它可以继承多个其他接口
⑤接口必须通过类来实现它的抽象方法
⑥ 一个类只能继承一个直接父类,但能实现多个接口
语法:
① 修饰符 interface 接口名 extends 父接口1,父接口2....{
//常量定义
//方法定义
}
② class 类名 extends 父类名 implements 接口1,接口2....{
//类成员
}
一个小例子:
使用java接口来模拟生活中的USB接口
1、先定义USB接口,通过service()方法提供服务
public interface Usbinterface{ void service(); }
2、定义U盘类,实现USB接口中的service()方法,进行数据传输
public class UDisk implementd UsbInterface{ public void service() { System.out.println("连接USB口,开始数据传输!"); } }
3、定义USB风扇类,实现USB接口中的service()方法,获得电流使风扇转动
public class UsbFan implementd UsbInterface{ public void service() { System.out.println("连接USB口,获得电流,风扇开始转动!"); } }
4、编写测试类
public class Test{ public static void main(String[]args){ //u盘 UsbInterface uDisk=new UDisk(); uDisk.service(); //USB风扇 UsbInterface usbFan=new UsbFan(); usbFan.service(); } }
Java中接口和抽象类的区别:
接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的,
实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需要用到的方法,一般的应用里,最顶级的是接口,然后是抽象类实现接口,最后才到具体类实现。
接口可以实现多重继承,而一个类只能继承一个超类,但可以通过继承多个接口实现多重继承,接口还有标识(里面没有任何方法,如Remote接口)和数据共享(里面的变量全是常量)的作用.