diff --git a/W5/ComputerTest.java b/W5/ComputerTest.java new file mode 100644 index 0000000..42ab65f --- /dev/null +++ b/W5/ComputerTest.java @@ -0,0 +1,60 @@ +// 1. 定义 USB 接口 +interface USB1 { + void open(); // 开启设备 + void close(); // 关闭设备 +} + +// 2. 鼠标类 实现 USB 接口 +class Mouse1 implements USB1 { + @Override + public void open() { + System.out.println("鼠标已连接:红光闪烁,准备就绪。"); + } + + @Override + public void close() { + System.out.println("鼠标已断开:红光熄灭。"); + } +} + +// 3. 键盘类 实现 USB 接口 +class Keyboard1 implements USB1 { + @Override + public void open() { + System.out.println("键盘已连接:指示灯闪烁,可以打字了。"); + } + + @Override + public void close() { + System.out.println("键盘已断开:指示灯熄灭。"); + } +} + +// 4. 电脑类 +class Computer1 { + // 核心方法:利用多态,参数是 USB1 接口类型 + // 这意味着它可以接收任何实现了 USB1 接口的对象(鼠标、键盘、U盘等) + public void useUSB(USB1 usb) { + System.out.println(">>> 电脑检测到设备插入..."); + usb.open(); // 调用具体设备的 open 方法 + usb.close(); // 调用具体设备的 close 方法 + System.out.println("-------------------------"); + } +} + +// 5. 测试类(主程序) +public class ComputerTest { + public static void main(String[] args) { + // 创建电脑对象 + Computer1 myPc = new Computer1(); + + // 创建具体的 USB 设备 + Mouse1 mouse = new Mouse1(); + Keyboard1 keyboard = new Keyboard1(); + + // 将设备插入电脑 + // 这里体现了多态:把子类对象(Mouse1)赋值给父接口引用(USB1) + myPc.useUSB(mouse); // 输出鼠标的行为 + myPc.useUSB(keyboard); // 输出键盘的行为 + } +} diff --git a/W5/Shape1.java b/W5/Shape1.java new file mode 100644 index 0000000..cf5345e --- /dev/null +++ b/W5/Shape1.java @@ -0,0 +1,38 @@ +public class Shape1 { + public void draw() { + System.out.println("绘制一个图形"); + } + + // 静态方法,用于测试多态 + public static void drawShape(Shape s) { + s.draw(); + } + + public static void main(String[] args) { + System.out.println("--- 基础题测试 ---"); + + // 创建子类对象 + Circle c = new Circle(); + Rectangle r = new Rectangle(); + + // 调用测试方法,体现多态性 + drawShape(c); // 输出: 绘制一个圆形 + drawShape(r); // 输出: 绘制一个矩形 + } +} + +// 子类 Circle1,注意这里不要加 public +class Circle1 extends Shape { + @Override + public void draw() { + System.out.println("绘制一个圆形"); + } +} + +// 子类 Rectangle1,注意这里不要加 public +class Rectangle1 extends Shape { + @Override + public void draw() { + System.out.println("绘制一个矩形"); + } +}