在该程序定义平面图形的抽象类和其派生类圆
时间: 2024-10-15 18:30:10 浏览: 26
GPS控制网图形应用程序的类设计.pdf
在面向对象编程中,当我们要设计一个通用的平面图形系统时,通常会创建一个抽象类作为基础,这个抽象类定义了一组共同的属性和方法,例如面积、周长等。然后我们可以为特定的形状如圆形定义派生类。
假设有一个名为`Shape`的抽象类:
```java
abstract class Shape {
protected double sideLength; // 对于某些形状可能是边长,对于圆则是半径
// 抽象方法,需要在每个派生类中实现
public abstract double getArea();
public abstract double getPerimeter();
// 共享的行为或构造函数
public Shape(double sideLength) {
this.sideLength = sideLength;
}
}
```
接下来,我们会定义一个派生类`Circle`,它从`Shape`继承并特化了圆形的特性:
```java
class Circle extends Shape {
private double radius;
// 圆形特有的属性初始化
public Circle(double radius) {
super(radius);
this.radius = radius;
}
// 实现`Shape`中的抽象方法
@Override
public double getArea() {
return Math.PI * Math.pow(radius, 2);
}
@Override
public double getPerimeter() {
return 2 * Math.PI * radius;
}
}
```
在这个例子中,`Circle`类可以访问并覆盖`Shape`中的方法,同时提供自己的计算公式(如圆的面积和周长)。这展示了多态的优势,即通过`Shape`类型的引用可以处理各种具体的圆形实例,而无需关心它们的具体实现细节。
阅读全文