Java设计一个表示圆柱体的类Cylinder,它继承自圆类Circle,它包含有表示圆柱体高的protected类型的成员变量h,获取和设置h值的public方法、计算圆柱体体积的public方法; 要求父类和子类位于不同的包中;
时间: 2024-05-03 16:21:09 浏览: 93
好的,这是一个Java编程问题。可以通过继承Circle类,重写计算体积方法,并添加一个表示高度的成员变量来实现。在子类Cylinder中,可以通过调用父类Circle的构造函数来初始化圆形部分的属性。
父类Circle代码:
```java
package com.example.geometry;
public class Circle {
protected double radius;
public Circle(double radius) {
this.radius = radius;
}
public double getRadius() {
return radius;
}
public void setRadius(double radius) {
this.radius = radius;
}
public double calculateArea() {
return Math.PI * radius * radius;
}
}
```
子类Cylinder代码:
```java
package com.example.geometry;
public class Cylinder extends Circle {
protected double height;
public Cylinder(double radius, double height) {
super(radius);
this.height = height;
}
public double getHeight() {
return height;
}
public void setHeight(double height) {
this.height = height;
}
public double calculateVolume() {
return calculateArea() * height;
}
}
```
在子类中,我们重写了父类的计算面积方法以及添加了计算体积方法。注意,在子类中我们需要调用父类的构造函数,以初始化圆半径属性。另外,由于父类的radius成员变量是protected类型,所以我们在子类中也可以直接访问。
以上是我的回答,是否满意呢?
阅读全文