接口
接口
无构造方法
方法都是全局抽象方法
属性全都是静态全局常量
接口是一个不能被实例化的的类型。
父类中写的是对一种类型的约束,接口是对一种方法的约束,具有这种方法的都可以实现这个接口
为什么要使用接口
一定程度弥补了继承的不足
接口的特点
接口的方法都默认public public abstract修饰
接口不能创建对象
接口中的变量都是静态常量
方法都需要被子类实现,否则子类也需要抽象类
如何使用接口
要满足has-a的关系,有关键字impelments,可以多实现,如果有继承有实现,则先继承实现的接口使用逗号隔开
面试题:接口和抽象类的区别
相同点:
都不能实例化,都包含抽象方法,用于描述系统提供的服务,不必提供具体实现
不同点:
- 在抽象类可以认为部分方法提供和默认实现,而接口中只能包含抽象方法
- 抽象类便于复用,而接口便于代码维护
- 一个类只能继承一个直接的父类
接口的语法
public interface 接口名{
//接口成员
}
接口成员可是全局变量和公共的抽象方法
案例:
- public interface UsbInterface { //编写接口
void service();
} -
public class FenShan implements UsbInterface { //风扇实现USB的功能
public void service() {
System.out.println("风扇开始转动.....");
}} -
public class Disk implements UsbInterface {//U盘实现USB的功能
public void service() {
System.out.println("开始传送数据......");
}} - 测试
-
public class TestUsb {
public static void main(String[] args) {
UsbInterface uDisk = new Disk();
uDisk.service();
UsbInterface usbFan= new FenShan();
usbFan.service();
}}