用java按要求完成如下类的定义。 定义接口Shape,具有抽象方法draw,实现该接口的类具有图形的绘制功能;定义类Painter,具有静态方法drawGraph(Shape s);应用匿名内部类实现三角形和圆的绘制。
时间: 2024-10-27 15:07:49 浏览: 88
在Java中,你可以按照以下步骤定义所需的类和接口:
首先,我们定义一个名为`Shape`的接口,它有一个抽象方法`draw()`表示图形的基本绘制功能:
```java
public interface Shape {
void draw();
}
```
接着,我们创建一个名为`Painter`的类,它有一个静态方法`drawGraph()`接受一个`Shape`类型的参数,并在其上调用`draw()`方法:
```java
public class Painter {
public static void drawGraph(Shape s) {
s.draw();
}
}
```
现在,我们可以用匿名内部类来实现`Shape`接口,分别为三角形和圆形:
```java
// 定义三角形类
public class Triangle implements Shape {
@Override
public void draw() {
System.out.println("Drawing a triangle.");
}
}
// 定义圆形类
public class Circle implements Shape {
@Override
public void draw() {
System.out.println("Drawing a circle.");
}
}
// 使用匿名内部类绘制图形
public class Main {
public static void main(String[] args) {
// 绘制三角形
Painter.drawGraph(new Shape() {
@Override
public void draw() {
new Triangle().draw(); // 实际上调用了Triangle的draw()
}
});
// 绘制圆形
Painter.drawGraph(new Shape() {
@Override
public void draw() {
new Circle().draw(); // 实际上调用了Circle的draw()
}
});
}
}
```
在这个例子中,`main`方法中通过匿名内部类动态创建了两个实现了`Shape`接口的对象,然后通过`Painter.drawGraph()`方法将它们传递进去,实现了三角形和圆形的绘制。
阅读全文