演示一个类既可以实现接口又可以继承抽象类的情况
时间: 2024-09-28 11:10:07 浏览: 32
在面向对象编程中,一个类可以选择同时实现一个或多个接口,并继承一个抽象类。这种设计模式允许类拥有多种功能。下面是一个简单的例子:
假设我们有一个编程语言,其中有一个`Shape`抽象类,它定义了一些基础形状的行为,比如计算面积:
```java
public abstract class Shape {
public abstract double getArea();
}
```
然后有两个接口:`Drawable` 和 `Colorable`,分别代表图形能被绘制以及有颜色:
```java
interface Drawable {
void draw();
}
interface Colorable {
void setColor(Color color);
}
```
现在我们可以创建一个`Circle` 类,它既实现了`Shape` 抽象类,也实现了这两个接口:
```java
import java.awt.Color;
class Circle extends Shape implements Drawable, Colorable {
private double radius;
private Color color;
public Circle(double radius) {
this.radius = radius;
}
@Override
public double getArea() {
return Math.PI * radius * radius;
}
@Override
public void draw() {
// 实现绘制逻辑
}
@Override
public void setColor(Color color) {
this.color = color;
}
}
```
在这个例子中,`Circle`类既能通过`getArea()`方法体现`Shape` 的行为,也能通过`draw()`和`setColor()`方法体现`Drawable` 和`Colorable` 接口的功能。
阅读全文