编写一个抽象类Shape,拥有一个求面积的方法area();编写矩形类Rect和圆形类Circle,分别实现求面积的方法。编写测试类,分别测试求矩形和圆形面积。
时间: 2024-11-30 09:15:46 浏览: 18
java代码-编写一个类,类名为Rectangle(矩形),它有两个整型的变量width(宽)和height(高);有一个方法area(),没有参数,返回类型为double,功能是求矩形的面积;还有另一个方法为perimeter()没有参数,返回类型为double,功能是求矩形的周长
首先,我们创建一个名为`Shape`的抽象类,它有一个抽象方法`area()`,所有形状的面积计算都需要通过这个方法来实现:
```java
abstract class Shape {
abstract double area();
}
```
接着,我们分别为矩形`Rect`和圆形`Circle`类提供具体的面积计算:
```java
class Rect extends Shape {
private double width;
private double height;
public Rect(double width, double height) {
this.width = width;
this.height = height;
}
@Override
double area() {
return width * height;
}
}
class Circle extends Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
double area() {
return Math.PI * Math.pow(radius, 2);
}
}
```
最后,我们编写一个测试类`TestShapes`来测试这两个形状的面积计算:
```java
public class TestShapes {
public static void main(String[] args) {
Rect rectangle = new Rect(5, 4);
System.out.println("Rectangle area: " + rectangle.area());
Circle circle = new Circle(3);
System.out.println("Circle area: " + circle.area());
// 测试其他形状,如果需要的话
// Shape shape = new Triangle(...); // 假设Triangle是一个Shape子类
// System.out.println("Triangle area: " + shape.area());
}
}
```
在这个例子中,我们演示了如何利用多态让`TestShapes`类可以轻松地处理不同类型的形状,而无需关心它们的具体实现。
阅读全文