接口
1.为什么要有接口
Java中不支持多重继承,只能实现单继承,为了达到多重继承的效果,提供了接口、
另一方面,有时必须从几个类中抽取相同的特征行为,而这些行为不是继承的关系,此时需要接口
例如下面这个图

继承是“是不是”的关系,接口是“能不能”的关系。
2.接口是什么
接口用interface来定义
接口和类是并列的关系
怎么定义接口?
在JDK7及之前: 只能定义全局常量 public static final (但是书写时可以省略)和 抽象方法 public abstract(也可省略不写)
在JDK8以后 ,还可以定义静态方法和默认方法。
接口中不能定义构造器! 意味着接口不能实例化
在Java中接口通过让类去实现(implements)的方式来使用:要么实现接口中所有的抽象方法,要么这个类扔是抽象类
一个类可以实现多个接口的功能,规则同上,同时也可以继承一个父类
接口的具体实现,体现多态性。具体看下面这个例子
先定义一个USB接口,然后用闪存类实现USB接口的功能。
interface USB{ public abstract void open(); public abstract void stop(); } class FlashMemory implements USB{ @Override public void open() { System.out.println("U盘开始工作"); } @Override public void stop() { System.out.println("U盘不干了"); } }
而后我们定义一个电脑类
class Computer{ public void transferData(USB usb){ usb.open(); System.out.println("传输ing"); usb.stop(); } }
我们知道接口是不能实例化的,那要如何实现transferData的功能呢?
public class InterfaceTest { public static void main(String[] args) { FlashMemory f1 = new FlashMemory(); Computer computer = new Computer(); computer.transferData(f1); } }
就是多态,相当于执行了Usb usb = new Flash();。
由于每个可实例化类实现接口中的所有抽象方法,可以接口将认为是一种规范。


浙公网安备 33010602011771号