| 你看一下这个,我修改了一下你的代码,里面有注释。 复制代码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("打印机接入");
        }
}
 |