2、定义一个图形类Picture,再定义Picture的两个子类:圆形类Circle、矩形类Rect。要求如下所示: 图像类:有求周长和求面积和显示图形信息的功能。 圆形类:包含圆心和半径,重写求周长和求面积的方法。 矩形类:包含长和宽,重写求周长和求面积的方法。
时间: 2024-10-26 13:02:52 浏览: 44
在面向对象编程中,我们可以这样设计:
首先,定义一个名为`Picture`的抽象基类,作为图形类的通用模板,包含了基本的属性和方法:
```java
public abstract class Picture {
// 图形的基本属性
protected String name;
// 构造函数,初始化图形名称
public Picture(String name) {
this.name = name;
}
// 公共方法
public abstract double getPerimeter(); // 求周长
public abstract double getArea(); // 求面积
public void displayInfo() { // 显示图形信息
System.out.println("图形名称:" + name);
}
}
```
接下来,我们创建`Circle`和`Rect`两个具体的子类,分别继承自`Picture`并实现其抽象方法:
```java
public class Circle extends Picture {
private double centerX; // 圆心X坐标
private double centerY; // 圆心Y坐标
private double radius; // 半径
public Circle(String name, double centerX, double centerY, double radius) {
super(name);
this.centerX = centerX;
this.centerY = centerY;
this.radius = radius;
}
@Override
public double getPerimeter() {
return 2 * Math.PI * radius;
}
@Override
public double getArea() {
return Math.PI * radius * radius;
}
}
public class Rect extends Picture {
private double length; // 长度
private double width; // 宽度
public Rect(String name, double length, double width) {
super(name);
this.length = length;
this.width = width;
}
@Override
public double getPerimeter() {
return 2 * (length + width);
}
@Override
public double getArea() {
return length * width;
}
}
```
现在,`Circle`和`Rect`类都具有各自的特定属性以及重写了`getPerimeter()`和`getArea()`方法,实现了它们各自图形的周长和面积计算。
阅读全文