你看一下这个,我修改了一下你的代码,里面有注释。- public class Test {
- /*
- * 需求: 通过一个接口,让电脑接上U盘和打印机。
- */
- public static void main(String[] args) {
- // Computer.usb(new Udisk());
- // Computer.usb(new Print());
- // 这也是可以的,可以理解为新产生了一个电脑,而且给电脑装上了U盘和打印机,通过usb的方式
- Computer c = new Computer();
- c.usb(new Udisk());
- c.usb(new Print());
- }
- }
- // 定义一个USB接口:相对于定义了一个规则
- interface USB {
- // 相当于定义规则的细节
- public abstract void use();
- }
- // 定义电脑类
- class Computer {
- // 静态是为了能让主函数直接调用(static修饰之后类名可以直接调用,你建立一个实例对象也可调用)
- public static void usb(USB usb) // 这句代码在调用时相当于:USB usb=new Udisk();
- // 或者USB usb=new Print();
- { // 接口类型指向自己的子类对象,这是多态的知识
- usb.use();
- }
- }
- // 定义一个U盘类并实现USB接口
- class Udisk implements USB {
-
- // 覆盖接口中的方法,相当于U盘厂商按照USB的规则生产U盘
- public void use() {
- System.out.println("U盘接入");
- }
- }
- // 定义一个打印机类并实现USB接口
- class Print implements USB {
-
- public void use() {
- System.out.println("打印机接入");
- }
- }
复制代码 |