定义一个颜色接口,可以绘制红、绿、蓝三种颜色。让练习1中的三种图形也实现该接口。用Java代码实现
时间: 2024-12-26 10:28:15 浏览: 11
首先,我们需要定义一个名为`ColorDrawable`的颜色接口,包含`drawWithColor(Color color)`方法。然后,我们将`Triangle`, `Rectangle`, 和 `Circle` 类扩展,使其都能接受颜色并实现绘图操作。以下是Java代码实现:
```java
// 定义颜色接口
public interface ColorDrawable {
void drawWithColor(Color color);
}
// 基本颜色枚举
public enum Color {
RED, GREEN, BLUE
}
// 实现三角形类,增加颜色绘图功能
public class Triangle extends Shape implements ColorDrawable {
// ...
@Override
public void drawWithColor(Color color) {
if (color == Color.RED) {
// 绘制红色三角形,这里只是一个示例,实际可根据需求画色
System.out.println("Drawing red triangle...");
} else if (color == Color.GREEN) {
// 绘制绿色三角形...
} else if (color == Color.BLUE) {
// 绘制蓝色三角形...
}
}
}
// 其他形状类的扩展同理,只需添加对应颜色的绘图方法
// 矩形类实现
public class Rectangle extends Shape implements ColorDrawable {
// ...
@Override
public void drawWithColor(Color color) {
if (color == Color.RED) {
// 绘制红色矩形...
} else if (color == Color.GREEN) {
// 绘制绿色矩形...
} else if (color == Color.BLUE) {
// 绘制蓝色矩形...
}
}
}
// 圆形类实现
public class Circle extends Shape implements ColorDrawable {
// ...
@Override
public void drawWithColor(Color color) {
if (color == Color.RED) {
// 绘制红色圆形...
} else if (color == Color.GREEN) {
// 绘制绿色圆形...
} else if (color == Color.BLUE) {
// 绘制蓝色圆形...
}
}
}
// 主函数演示如何使用
public class Main {
public static void main(String[] args) {
Triangle triangle = new Triangle(4, 6);
Rectangle rectangle = new Rectangle(5, 7);
Circle circle = new Circle(3);
triangle.drawWithColor(Color.RED); // 给每个图形指定颜色
// 同样可以给rectangle和circle指定颜色
}
}
```
在这个例子中,我们假设`Shape`接口已经存在并且已经有了绘图方法。`drawWithColor(Color color)`方法将颜色应用到各自形状上,例如打印出消息表示图形已经被相应颜色绘制。
阅读全文