今天来看看java接口长哪样。接口是特殊抽象类。
一个子类只能继承一个抽象类(父类),所以就有接口这个特殊抽象类。
下面以一个电脑的USB为例:
定义接口标准
public interface USBA { public void install(); public void work(); }
-
public interface USBB { public void install(); public void work(); public void over(); }
Computer.java 电脑类安装了USBA和USBB
// public class Computer { public void pluginA(USBA usba) { usba.install(); usba.work(); } public void pluginB(USBA usba,USBB usbb) { usba.install(); usba.work(); usbb.over(); } }
手机类
public class Phone implements USBA { public void install() { System.out.println("正在安装手机驱动"); } public void work() { System.out.println("电脑可以打电话了"); } }
-
public class Print implements USBA { public void install() { System.out.println("安装打印机驱动"); } public void work() { System.out.println("打印机开始工作了"); } }
-
public class Virus implements USBB,USBA { @Override public void install() { // TODO Auto-generated method stub System.out.println("病毒开始入侵"); } @Override public void work() { // TODO Auto-generated method stub System.out.println("病毒正在破坏系统"); } @Override public void over() { // TODO Auto-generated method stub System.out.println("病毒进行了格盘,与系统同归于尽。啾"); } }
程序主入口BodyMain.java。
// public class BodyMain { public static void main(String[] args) { // TODO Auto-generated method stub Computer c = new Computer();//实例化电脑,你正在用电脑 c.pluginA(new Phone());//在电脑USB1接上了手机 c.pluginA(new Print()); c.pluginB(new Virus(), new Virus());//USBA和USBB都接上了病毒。一个子类可以实现多个接口 } }
运行结果