使⽤OOP继承。 • 实现:与⻔、或⻔和⾮⻔
时间: 2024-09-26 22:05:10 浏览: 13
在面向对象编程(Object-Oriented Programming,OOP)中,继承是一种机制,允许创建新的类(称为子类或派生类)基于已存在的类(称为父类或基类)。这种关系使得子类能够共享父类的属性和方法,同时还可以添加或修改自身的特性。
以门(Door)为例,我们可以创建一个基础的门类(BaseDoor),它包含一些共同的行为和属性,比如开关状态(open/closed)、锁住/解锁等:
```java
public abstract class BaseDoor {
private boolean isOpen;
public BaseDoor() {
isOpen = false;
}
// 公共方法
public void open() {
isOpen = true;
}
public void close() {
isOpen = false;
}
// 抽象方法,需要子类实现
public abstract void lock();
public abstract void unlock();
}
```
然后,你可以为"与门"(AndGate)、"或门"(OrGate)和"非门"(NotGate)创建具体的子类,并继承BaseDoor:
```java
public class AndGate extends BaseDoor {
@Override
public void lock() {
if (isOpen) {
super.lock();
}
}
@Override
public void unlock() {
if (!isOpen) {
super.unlock();
}
}
}
public class OrGate extends BaseDoor {
@Override
public void lock() {
if (!isOpen) {
super.lock();
}
}
@Override
public void unlock() {
if (isOpen) {
super.unlock();
}
}
}
public class NotGate extends BaseDoor {
@Override
public void lock() {
isOpen = !isOpen;
}
@Override
public void unlock() {
isOpen = !isOpen;
}
}
```
每个子类实现了lock()和unlock()方法,它们的具体行为依据门的状态(如是否开启)进行操作。这就是OOP继承如何帮助我们设计出具有特定功能的门电路模型。