抽象图形类,三角形类和圆形类,求周长和面积
时间: 2024-08-05 17:01:24 浏览: 100
在面向对象编程中,抽象图形类通常是一个模板或基类,它定义了一些通用的属性(如边数、半径等)和计算几何形状基本属性(如周长和面积)的方法,但并不提供具体的实现。三角形类和圆形类作为抽象图形类的具体实例,它们继承自抽象图形类,并实现了各自的特定性质。
例如:
```java
// 抽象图形类 AbstractShape
abstract class AbstractShape {
protected double side1, side2, side3; // 仅举三边为例,三角形有三条边
protected double radius; // 圆形的半径
// 定义公共的周长和面积方法
abstract double getPerimeter();
abstract double getArea();
// 其他通用方法...
}
// 三角形类 Triangle extends AbstractShape
class Triangle extends AbstractShape {
public Triangle(double a, double b, double c) {
this.side1 = a;
this.side2 = b;
this.side3 = c;
}
@Override
double getPerimeter() {
return side1 + side2 + side3;
}
@Override
double getArea() {
// Heron's formula for area of triangle
double s = (side1 + side2 + side3) / 2;
return Math.sqrt(s * (s - side1) * (s - side2) * (s - side3));
}
}
// 圆形类 Circle extends AbstractShape
class Circle extends AbstractShape {
public Circle(double radius) {
this.radius = radius;
}
@Override
double getPerimeter() {
return 2 * Math.PI * radius;
}
@Override
double getArea() {
return Math.PI * radius * radius;
}
}
```
阅读全文