java微波炉程序代码
时间: 2024-06-23 19:01:20 浏览: 7
在Java中,我们可以创建一个简单的模拟微波炉的程序来演示多态的概念。这个程序通常包含一个"炉子"抽象类和一些具体的"烹饪设备"子类,比如"微波炉"和"烤箱"。下面是简化的代码示例:
```java
// 抽象炉子类
abstract class Oven {
public abstract void cook(int timeInMinutes);
}
// 具体的微波炉类
class Microwave extends Oven {
@Override
public void cook(int timeInMinutes) {
System.out.println("微波炉正在加热 " + timeInMinutes + " 分钟");
}
}
// 具体的烤箱类
class Oven extends Oven {
@Override
public void cook(int timeInMinutes) {
System.out.println("烤箱正在烘烤 " + timeInMinutes + " 分钟");
}
}
public class Main {
public static void main(String[] args) {
// 创建微波炉对象并调用其方法
Oven microwave = new Microwave();
microwave.cook(5); // 输出: 微波炉正在加热 5 分钟
// 创建烤箱对象并调用其方法
Oven oven = new Oven(); // 这里使用了向上转型
oven.cook(10); // 输出: 烤箱正在烘烤 10 分钟
}
}
```
在这个例子中:
1. `Oven` 是抽象类,定义了一个`cook`方法,展示了多态的基础——方法重写。
2. `Microwave` 和 `Oven` 是具体的子类,它们实现了`Oven`类中的`cook`方法。
3. 在`main`方法中,我们创建了`Oven`类型的对象`microwave`和`oven`,但实际上它们分别是`Microwave`和`Oven`实例。调用`cook`方法时,根据对象的实际类型执行不同的操作,这就是多态。
相关问题:
1. Java中的多态是如何体现的?
2. 上述代码如何展示接口和继承在多态中的应用?
3. 在这个例子中,为什么可以将`Oven`类型的对象赋值给`Microwave`或`Oven`引用?