项目功能设计中接口是需要最先设计的。
以USB的程序为例,计算机上可以插入各种USB的设备,所以计算机上认识的知识USB标准,而不关心这个标准的具体实现子类。
利用接口定义标准的例子:
package com.mydemo;
// 定义USB标准
public interface IUSB {
public boolean check(); // 【抽象方法】检查通过可以工作
public void word(); // 【抽象方法】设备工作
}
package com.mydemo;
// USB子类
class Keyboard implements IUSB {
@Override
public boolean check() {
return true;
}
@Override
public void word() {
System.out.println("键盘工作了");
}
}
package com.mydemo;
// USB子类
class Print implements IUSB {
@Override
public boolean check() {
return false;
}
@Override
public void word() {
System.out.println("打印机工作了");
}
}
package com.mydemo;
// 定义计算机类
public class Computer {
// 计算机上使用USB标准设备
public void plugin(IUSB usb) {
// 检查设备
if (usb.check()) {
// 开始工作
usb.word();
} else {
System.out.println("接口出现问题了?还是咋地,不能工作了");
}
}
}
package com.mydemo;
public class USBDemo {
public static void main(String[] args) {
// 实例化计算机类对象
Computer computer = new Computer();
/**
*
*/
// 插入键盘设备
computer.plugin(new Keyboard());
// 插入打印机设备
computer.plugin(new Print());
}
}
运行结果:
键盘工作了
接口出现问题了?还是咋地,不能工作了
接口在整体设计上是针对类的进一步抽象,而其设计的层次也要高于抽象类