设计几何图形(Shape)、矩形(Rectang1e)、圆形(c ircle)、正方形(Square), 能够利用接口和多态性计算几何图形的备积和周长,并显出来。
时间: 2024-10-22 16:04:58 浏览: 21
c++ 形状类Shape(派生出圆类Circle和矩形类Rectangle)
为了实现这个需求,我们可以使用Java的接口、抽象类以及多态性来设计一个通用的形状体系结构。首先,我们创建一个`Shape`接口,定义计算面积和周长的方法:
```java
// Shape 接口
public interface Shape {
double getArea();
double getPerimeter();
}
```
然后,我们为每个具体的形状(如矩形、圆形和正方形)创建一个类,这些类都继承自`Shape`并重写相应的抽象方法:
```java
// 矩形类
public class Rectangle implements Shape {
private double length;
private double width;
public Rectangle(double length, double width) {
this.length = length;
this.width = width;
}
@Override
public double getArea() {
return length * width;
}
@Override
public double getPerimeter() {
return 2 * (length + width);
}
}
// 圆形类
public class Circle implements Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
public double getArea() {
return Math.PI * Math.pow(radius, 2);
}
@Override
public double getPerimeter() {
return 2 * Math.PI * radius;
}
}
// 正方形类
public class Square extends Rectangle {
public Square(double side) {
super(side, side); // 使用父类构造函数设置边长
}
}
```
现在你可以创建一个方法来根据给定的类型显示不同形状的面积和周长:
```java
public void displayProperties(String shapeType, Shape shape) {
System.out.println("对于 " + shapeType + " 形状:");
System.out.println("面积:" + shape.getArea());
System.out.println("周长:" + shape.getPerimeter());
}
```
接下来,你可以像这样使用这个方法:
```java
public static void main(String[] args) {
Shape rectangle = new Rectangle(5, 7);
Shape circle = new Circle(4);
Shape square = new Square(6);
displayProperties("矩形", rectangle);
displayProperties("圆形", circle);
displayProperties("正方形", square);
}
```
阅读全文