1、接口的定义
如果一个抽象类中的所有方法都是抽象的,就可以将这个类用另外一种方式来定义,也就是接口定义。
接口是抽象方法和常量值的定义的集合,从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现 可以使用extends来继承接口的常量和抽象方法,但它与类中的extends不同,它可以继承有多个父接口(多重继承),各父接口间用逗号隔开。 接口中的所有常量必须是public static final,方法必须是public abstract,这是系统默认的,不管你在定义接口时,写不写修饰符都是一样的。2、接口的特点
定义接口的关键字:interface。实现接口的关键字:implements。
1)不能够被实例化 2)接口中的方法自动设为public abstract类型 3)接口中不能够出现方法体的实现 4)接口中的成员变量全为静态常量,用public static final,不过一般不在接口中定义成员变量 5)实现某个接口的类,必须实现其中所有的方法 6)一个类可以实现多个接口 7)接口可以继承接口,使用extends关键字8)一个类可以继承一个父类的同时,实现一个或者多个接口,extends关键字必须位于implements关键字之前
3、接口的作用
接口的最主要的作用是达到统一访问。在不同事物(类)中抽象出共同功能点(方法),形成一组公开的功能规则(接口)
来制约某些事物(类)的功能实现。换句话说:接口就是对类的功能(方法)抽象。接口程序段实例:
interface PCI
{ void start(); void stop();}class NetWorkCard implements PCI
{ public void start() { System.out.println("send"); } public void stop() { System.out.println("stop"); } }class SoundCard implements PCI
{ public void start() { System.out.println("du..du"); } public void stop() { System.out.println("sound stop"); }}class MainBoard
{ public void usePCICard(PCI p) { p.start(); p.stop(); }} class Assembler{ public static void main(String args[]) { MainBoard mb = new MainBoard(); NetWorkCard nc = new NetWorkCard(); SoundCard sc = new SoundCard(); mb.usePCICard(nc); mb.usePCICard(sc); mb.usePCICard(new PCI() { public void start() { System.out.println("I love you"); } public void stop() { System.out.println("Me too"); } }); }}PS:关于上面的mb.usePCICard(new PCI()。。。这个方法,是采用匿名类来实现接口