.定义一个抽象类Shape,它包含一个抽象方法getArea(),从Shape类派生出Rectangle和Circle类(即它们为两个子类),这两个类都用getArea()方法计算对象的面积。编写应用程序使用Rectangle和Circle类。
时间: 2024-12-13 22:25:18 浏览: 14
c++ 形状类Shape(派生出圆类Circle和矩形类Rectangle)
在面向对象编程中,我们可以创建一个抽象类Shape,它是所有形状的基础类,包含一个抽象方法getArea(),表示计算形状面积的行为,但并未提供具体的实现。抽象类无法直接实例化,它的目的是为了规定其子类应该具有的结构。
接着,我们为这个抽象类定义两个具体子类,例如Rectangle(矩形)和Circle(圆形)。Rectangle类会有一个长和宽的属性,getArea()方法会基于这些属性计算面积;同样,Circle类会有半径,getArea()则会用公式πr²来计算圆的面积。
下面是一个简单的示例,如何在Java中实现:
```java
abstract class Shape {
abstract double getArea();
}
class Rectangle extends Shape {
private double length;
private double width;
public Rectangle(double length, double width) {
this.length = length;
this.width = width;
}
@Override
double getArea() {
return length * width;
}
}
class Circle extends Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
double getArea() {
return Math.PI * Math.pow(radius, 2);
}
}
public class Main {
public static void main(String[] args) {
Rectangle rectangle = new Rectangle(5, 4);
System.out.println("Rectangle area: " + rectangle.getArea());
Circle circle = new Circle(3);
System.out.println("Circle area: " + circle.getArea());
}
}
```
在这个程序中,你可以看到通过Shape类型的引用分别创建Rectangle和Circle对象,并调用各自的getArea()方法,这就是多态性的体现。
阅读全文