按要求完成如下类的定义。 定义接口Shape,具有抽象方法draw,实现该接口的类具有图形的绘制功能;定义类Painter,具有静态方法drawGraph(Shape s);应用匿名内部类实现三角形和圆的绘制。
时间: 2024-10-27 09:08:20 浏览: 22
首先,我们定义一个名为`Shape`的接口,它包含一个抽象方法`draw()`:
```java
public interface Shape {
void draw();
}
```
接下来,我们创建一个名为`Painter`的类,其中有一个静态方法`drawGraph()`,这个方法接受一个`Shape`类型的参数:
```java
public class Painter {
public static void drawGraph(Shape shape) {
// 将shape传入这里,然后调用其draw()方法进行绘制
}
}
```
现在我们可以用匿名内部类的方式,分别实现`Shape`接口,表示三角形和圆形:
```java
// 实现三角形
Painter.drawGraph(new Shape() {
@Override
public void draw() {
System.out.println("Drawing a triangle...");
// 这里添加具体的三角形绘制代码
}
});
// 实现圆形
Painter.drawGraph(new Shape() {
@Override
public void draw() {
System.out.println("Drawing a circle...");
// 这里添加具体的圆形绘制代码
}
});
```
在这个例子中,通过匿名内部类,我们可以在不暴露具体实现的情况下,让`Painter`的`drawGraph()`方法根据传入的不同`Shape`实例调用相应的`draw()`方法。
阅读全文