编写Java程序,设计一个门类Door,可以实现基本的开关行为(方法),现在要扩展功能,具有报警功能和落锁功能。请问,如何对类Door进行修改更合适?
时间: 2024-03-15 20:46:37 浏览: 87
对于Door类进行扩展,可以考虑使用继承和接口的方式。
首先,可以将Door类作为基类,派生出新的子类AlarmDoor和LockDoor,分别实现报警和落锁的功能。这样做的好处是代码结构清晰,易于维护和扩展。
其次,可以定义一个Alarm接口和一个Lock接口,Door类实现这两个接口,AlarmDoor和LockDoor分别继承Door类并实现对应的接口。这样做的好处是可以更灵活地组合功能,例如可以将一个门同时设定为报警和落锁状态。
示例代码如下:
```java
// 基类 Door
public class Door {
private boolean open;
public void open() {
open = true;
}
public void close() {
open = false;
}
public boolean isOpen() {
return open;
}
}
// 接口 Alarm
public interface Alarm {
void alarm();
}
// 接口 Lock
public interface Lock {
void lock();
}
// 报警门 AlarmDoor
public class AlarmDoor extends Door implements Alarm {
public void alarm() {
// 实现报警功能
}
}
// 落锁门 LockDoor
public class LockDoor extends Door implements Lock {
public void lock() {
// 实现落锁功能
}
}
// 组合门 CompositeDoor
public class CompositeDoor extends Door implements Alarm, Lock {
public void alarm() {
// 实现报警功能
}
public void lock() {
// 实现落锁功能
}
}
```
这样可以根据需要选择不同的门类,实现不同的功能。例如,如果需要一个既有报警功能又有落锁功能的门,可以使用CompositeDoor类。
阅读全文