再定义圆类和正方形类的继承形状类,实现求周长和面积的方法
时间: 2024-12-24 11:28:22 浏览: 18
在面向对象编程中,我们可以创建一个名为"Shape"的抽象类作为所有形状的基础,然后定义两个具体的子类如"Circle"和"Rectangle"(这里假设我们叫它"Square",因为正方形也是矩形的一种特殊形式),它们都从"Shape"类继承,并实现各自的求周长和面积的方法。
```java
// Shape抽象类
abstract class Shape {
abstract double getPerimeter(); // 返回周长
abstract double getArea(); // 返回面积
void displayProperties() {
System.out.println("This is an abstract shape.");
}
}
// 圆类 Circle
class Circle extends Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
double getPerimeter() {
return 2 * Math.PI * radius; // 圆的周长公式
}
@Override
double getArea() {
return Math.PI * radius * radius; // 圆的面积公式
}
}
// 正方形类 Square (即特殊的Rectangle)
class Square extends Shape {
private double side;
public Square(double side) {
this.side = side;
}
@Override
double getPerimeter() {
return 4 * side; // 正方形周长公式
}
@Override
double getArea() {
return side * side; // 正方形面积公式
}
}
// 使用示例
public static void main(String[] args) {
Circle circle = new Circle(5);
Square square = new Square(6);
circle.displayProperties();
System.out.println("Circle's perimeter: " + circle.getPerimeter());
System.out.println("Circle's area: " + circle.getArea());
square.displayProperties();
System.out.println("Square's perimeter: " + square.getPerimeter());
System.out.println("Square's area: " + square.getArea());
}
```
阅读全文