定义一个抽象类Shape,它包含一个抽象方法getArea().从 Shape类派生出Rectangle和Circle类,这两个类都用getArea()方法计算对象的面积。编写应用程序使用Shape类对象,求出 Rectangle和Circle的面积。java,写出完整程序
时间: 2024-10-25 12:06:14 浏览: 1
在Java中,我们可以创建一个抽象类`Shape`,并定义一个抽象方法`getArea()`。然后,我们可以创建两个实现了这个抽象类的具体子类`Rectangle`和`Circle`,它们分别计算矩形和圆形的面积。下面是一个简单的示例:
```java
// 抽象类Shape
abstract class Shape {
// 抽象方法getArea()
abstract double getArea();
}
// 具体子类Rectangle
class Rectangle extends Shape {
private double width;
private double height;
public Rectangle(double width, double height) {
this.width = width;
this.height = height;
}
@Override
double getArea() {
return width * height;
}
}
// 具体子类Circle
class Circle extends Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
double getArea() {
return Math.PI * radius * radius;
}
}
public class Main {
public static void main(String[] args) {
// 创建Shape类型的引用,并存储具体的子类实例
Shape rectangle = new Rectangle(5, 6);
Shape circle = new Circle(3.5);
// 调用抽象方法getArea(),通过子类对象获取实际的面积
System.out.println("Rectangle area: " + rectangle.getArea());
System.out.println("Circle area: " + circle.getArea());
// 提供通用的形状面积求和
double totalArea = rectangle.getArea() + circle.getArea();
System.out.println("Total combined area: " + totalArea);
}
}
```
在这个程序中,我们创建了两个Shape类型的变量,但实际上存储的是Rectangle和Circle的对象。当我们调用`getArea()`方法时,由于多态性,会调用各自子类的实现。
阅读全文