酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

-写出对象适配器,使电能、光能发动机可以和发动机兼容 (学习通) //目标:发动机 interface motor public void drive(); //适配者1:电能发动机 class electricmotor public void electricdrive() system.out.println(”电能发动机驱动汽车!"); ~ ~ //适配者2:光能发动机 class opticalmotor public void opticaldrive() system.out.println("光能发动机驱动汽车!");

为了实现对象适配器模式,我们需要创建一个适配器类,该类将电能发动机和光能发动机适配到发动机接口。以下是完整的代码实现: ```java // 目标接口:发动机 interface Motor { void drive(); } // 适配者1:电能发动机 class ElectricMotor { public void electricDrive() { System.out.println("电能发动机驱动汽车!"); } } // 适配者2:光能发动机 class OpticalMotor { public void opticalDrive() { System.out.println("光能发动机驱动汽车!"); } } // 对象适配器类 class MotorAdapter implements Motor { private ElectricMotor electricMotor; private OpticalMotor opticalMotor; // 构造函数,传入要适配的电能发动机 public MotorAdapter(ElectricMotor electricMotor) { this.electricMotor = electricMotor; } // 构造函数,传入要适配的光能发动机 public MotorAdapter(OpticalMotor opticalMotor) { this.opticalMotor = opticalMotor; } @Override public void drive() { if (electricMotor != null) { electricMotor.electricDrive(); } else if (opticalMotor != null) { opticalMotor.opticalDrive(); } else { System.out.println("没有适配的发动机!"); } } } // 测试类 public class Main { public static void main(String[] args) { // 创建电能发动机 ElectricMotor electricMotor = new ElectricMotor(); // 创建光能发动机 OpticalMotor opticalMotor = new OpticalMotor(); // 创建适配器 Motor motor1 = new MotorAdapter(electricMotor); Motor motor2 = new MotorAdapter(opticalMotor); // 使用适配器驱动汽车 motor1.drive(); // 输出: 电能发动机驱动汽车! motor2.drive(); // 输出: 光能发动机驱动汽车! } } ``` 解释 1. Motor 接口:定义了 `drive` 方法,这是所有发动机需要实现的方法。 2. ElectricMotor 类:实现了 `electricDrive` 方法,模拟电能发动机的工作。 3. OpticalMotor 类:实现了 `opticalDrive` 方法,模拟光能发动机的工作。 4. MotorAdapter 类:实现了 `Motor` 接口,并通过构造函数接收 `ElectricMotor` 或 `OpticalMotor` 对象。在 `drive` 方法中,根据传入的对象调用相应的方法。 测试 在 `Main` 类中,我们创建了 `ElectricMotor` 和 `OpticalMotor` 的实例,并使用 `MotorAdapter` 将它们适配为 `Motor` 接口。然后调用 `drive` 方法来验证适配器是否工作正常。 [2024-10-28 17:34:06 | AI写代码神器 | 611点数解答]

相关提问