定义一个抽象类Shape,它包含一个抽象方法getArea(),从Shape类派生出Rectangle和Circle类,这两个类都用getArea()方法计算对象的面积。编写程序使用Rectangle和Circle类。(说明:定义Rectangle和Circle类的构造方法,初始化成员变量。)
时间: 2024-03-20 09:39:51 浏览: 82
抽象类和接口 java
好的,下面是一个符合要求的Java程序:
```
abstract class Shape {
public abstract double getArea();
}
class Rectangle extends Shape {
private double width;
private double height;
public Rectangle(double w, double h) {
width = w;
height = h;
}
public double getArea() {
return width * height;
}
}
class Circle extends Shape {
private double radius;
public Circle(double r) {
radius = r;
}
public double getArea() {
return Math.PI * radius * radius;
}
}
public class Main {
public static void main(String args[]) {
Shape shape1 = new Rectangle(5, 10);
Shape shape2 = new Circle(7);
System.out.println("矩形的面积: " + shape1.getArea());
System.out.println("圆的面积: " + shape2.getArea());
}
}
```
输出结果为:
```
矩形的面积: 50.0
圆的面积: 153.93804002589985
```
在这个程序中,我们首先定义了一个抽象类`Shape`,其中包含一个抽象方法`getArea()`。然后,我们创建了两个子类`Rectangle`和`Circle`,它们都继承了`Shape`类并实现了`getArea()`方法。
在`Rectangle`类中,我们定义了一个构造方法来初始化宽度和高度,并实现了`getArea()`方法来计算矩形的面积。
在`Circle`类中,我们定义了一个构造方法来初始化半径,并实现了`getArea()`方法来计算圆的面积。
在`Main`类中,我们创建了一个`Rectangle`对象和一个`Circle`对象,并通过`getArea()`方法来获取它们的面积。由于`Shape`类是抽象类,我们只能创建它的子类对象来调用`getArea()`方法,这就是多态性的体现。
阅读全文