/定义一个图形类及其子类(三角形类和矩形类),分别计算其面积和周长。
时间: 2024-10-15 18:22:02 浏览: 45
在面向对象编程中,我们可以定义一个通用的`图形`类作为父类,然后创建两个具体的子类`三角形`和`矩形`,它们都继承自`图形`并实现各自的面积和周长计算方法。
首先,定义`图形`类:
```java
public abstract class 形状 {
protected double 长度; // 对于矩形,长度和宽度是一样的
protected double 宽度; // 只有对于矩形
public 形状(double length) {
this.长度 = length;
}
public abstract double getArea(); // 计算面积,抽象方法
public abstract double getPerimeter(); // 计算周长,抽象方法
// 其他通用方法,如打印信息等
}
```
接下来,我们为`三角形`类和`矩形`类提供具体实现:
```java
public class 三角形 extends 形状 {
private double 高度;
public 三角形(double base, double height) {
super(base);
this.高度 = height;
}
@Override
public double getArea() {
return 0.5 * 长度 * 高度;
}
@Override
public double getPerimeter() {
return 长度 + (2 * Math.sqrt(3) * 高度); // 假设正三角形
}
}
public class 矩形 extends 形状 {
public 矩形(double length, double width) {
super(length);
this.宽度 = width;
}
@Override
public double getArea() {
return 长度 * 宽度;
}
@Override
public double getPerimeter() {
return 2 * (长度 + 宽度);
}
}
```
现在,你可以创建这两种形状的对象,并通过它们的公共接口(如`getArea`和`getPerimeter`)来获取面积和周长的值,体现了多态的原则。
阅读全文