超类 Circle派生了一个称为 Cylinder 的子类,如下方类图所示。研究子类 Cylinder 如何调用超类 Circle 的构造函数,并从超类继承和使用方法 getArea()。 Circle 属性 radius:圆半径。 color:圆颜色。 构造方法 Circle():初始化属性。 public Circle(double radius)。 public Circle(double radius,String color)。 方法 两个属性的set和get方法。 getArea():返回圆的
时间: 2023-11-27 18:50:33 浏览: 54
定义三个类Point,Circle和Cylinder,Point类为基类,为上述3个类添加计算面积的成员函数Area(),要求函数Area()采用虚函数的形式,并通过基类指针调用虚函数Area()。
面积,即 π * radius * radius。
在子类 Cylinder 的构造函数中,可以使用 super() 调用超类 Circle 的构造函数,以初始化 Circle 类中的属性 radius 和 color。 在子类 Cylinder 中,可以通过继承方法 getArea() 来获取 Circle 类中定义的计算圆面积的方法,并在此基础上计算出圆柱体的表面积和体积。
以下是一个简单的 Java 代码示例:
```
public class Circle {
private double radius;
private String color;
public Circle() {
this.radius = 0.0;
this.color = "";
}
public Circle(double radius) {
this.radius = radius;
this.color = "";
}
public Circle(double radius, String color) {
this.radius = radius;
this.color = color;
}
public double getRadius() {
return this.radius;
}
public void setRadius(double radius) {
this.radius = radius;
}
public String getColor() {
return this.color;
}
public void setColor(String color) {
this.color = color;
}
public double getArea() {
return Math.PI * this.radius * this.radius;
}
}
public class Cylinder extends Circle {
private double height;
public Cylinder(double radius, double height) {
super(radius);
this.height = height;
}
public double getHeight() {
return this.height;
}
public void setHeight(double height) {
this.height = height;
}
public double getSurfaceArea() {
return 2 * super.getArea() + 2 * Math.PI * super.getRadius() * this.height;
}
public double getVolume() {
return super.getArea() * this.height;
}
}
```
在上述代码中,子类 Cylinder 调用了超类 Circle 的构造函数,以初始化 Circle 类中的属性 radius 和 color。 子类 Cylinder 继承了超类 Circle 中定义的方法 getArea(),并在此基础上定义了新的方法 getSurfaceArea() 和 getVolume(),以计算出圆柱体的表面积和体积。
阅读全文