用Java写出定义一个图形类Picture,再定义Picture的两个子类:圆形类Circle、矩形类Rect。 要求: (1)图像类:包含图像名和长度属性(10分),有求周长和求面积和显示图形信息的功能(30分)。 (2)圆形类:重写求周长和求面积的方法(20分)。 (3)正方形类:重写求周长和求面积的方法(20分)。 (4)测试类: 1)调用图像类方法,输出正方形图形信息为:“正方形边长为10”(10分) 2)调用正方形类重写的面积方法,求出正方形面积,并输出“面积为100.0”(10分)
时间: 2024-02-15 22:07:23 浏览: 30
下面是Java代码实现:
```java
// 图像类
class Picture {
private String name;
private int length;
// 构造函数
public Picture(String name, int length) {
this.name = name;
this.length = length;
}
// 求周长
public double getPerimeter() {
return 0;
}
// 求面积
public double getArea() {
return 0;
}
// 显示图像信息
public void displayInfo() {
System.out.println(name + "长度为" + length);
}
}
// 圆形类
class Circle extends Picture {
private final double PI = 3.1415926;
// 构造函数
public Circle(String name, int length) {
super(name, length);
}
// 重写求周长
@Override
public double getPerimeter() {
return 2 * PI * super.length;
}
// 重写求面积
@Override
public double getArea() {
return PI * super.length * super.length;
}
}
// 矩形类
class Rect extends Picture {
// 构造函数
public Rect(String name, int length) {
super(name, length);
}
// 重写求周长
@Override
public double getPerimeter() {
return 4 * super.length;
}
// 重写求面积
@Override
public double getArea() {
return super.length * super.length;
}
}
// 测试类
public class Test {
public static void main(String[] args) {
// 创建正方形对象
Picture rect = new Rect("正方形", 10);
// 显示正方形信息
rect.displayInfo();
// 求正方形面积并输出
System.out.println("面积为" + rect.getArea());
}
}
```
输出结果为:
```
正方形长度为10
面积为100.0
```
解释:
1. 定义了一个图形类Picture,包含图像名和长度属性,以及求周长、求面积和显示图形信息的功能。
2. 定义了一个圆形类Circle,重写了求周长和求面积的方法。
3. 定义了一个正方形类Rect,重写了求周长和求面积的方法。
4. 在测试类Test中,创建了一个正方形对象,并调用图像类的方法输出正方形信息,再调用正方形类重写的面积方法求出正方形面积,最后输出面积。