编程实现两个类,一个三角形,一个四边形,每个有计算面积和周长的函数,有边长等变量。请设计四边形对三角形的继承,利用对象访问,实现四边形的周长,面积函数,输出运行结果。Java
时间: 2024-10-23 17:20:31 浏览: 19
在Java中,我们可以创建一个`Shape`父类和两个子类`Triangle`(三角形)和`Quadrilateral`(四边形),其中`Quadrilateral`继承自`Shape`并覆盖或添加相应的功能。下面是一个简单的示例:
```java
// 父类Shape
public abstract class Shape {
protected double[] sides; // 边长数组
public Shape(double... sides) {
this.sides = sides;
}
// 公共方法,用于打印形状信息
@Override
public String toString() {
return "Shape with sides: " + Arrays.toString(sides);
}
// 抽象方法,用于计算面积和周长
public abstract double getArea();
public abstract double getPerimeter();
}
// 子类Triangle,继承自Shape
public class Triangle extends Shape {
public Triangle(double a, double b, double c) {
super(a, b, c); // 三角形三边
}
@Override
public double getArea() {
double s = (a + b + c) / 2;
return Math.sqrt(s * (s - a) * (s - b) * (s - c));
}
@Override
public double getPerimeter() {
return a + b + c;
}
}
// 子类Quadrilateral,继承自Shape
public class Quadrilateral extends Shape {
private double side1, side2, side3, side4;
public Quadrilateral(double side1, double side2, double side3, double side4) {
super(side1, side2, side3, side4); // 四边形四边
}
@Override
public double getArea() {
// 这里可以使用海伦公式或其他算法计算面积,这里仅作为示例简化处理
return (side1 + side2 + side3 + side4) / 4;
}
@Override
public double getPerimeter() {
return side1 + side2 + side3 + side4;
}
}
// 测试类
public class Main {
public static void main(String[] args) {
Triangle triangle = new Triangle(3, 4, 5);
System.out.println("Triangle: " + triangle);
Quadrilateral quadrilateral = new Quadrilateral(6, 8, 10, 12);
System.out.println("Quadrilateral: " + quadrilateral);
System.out.println("Triangle area: " + triangle.getArea());
System.out.println("Triangle perimeter: " + triangle.getPerimeter());
System.out.println("Quadrilateral area: " + quadrilateral.getArea());
System.out.println("Quadrilateral perimeter: " + quadrilateral.getPerimeter());
}
}
```
在这个例子中,`Quadrilateral`类继承了`Shape`,实现了`getArea()`和`getPerimeter()`方法,并通过实例化对象可以直接调用这些方法。当运行`main`方法时,会输出每个形状的描述以及它们的面积和周长。
阅读全文