编程实现两个类,一个三角形,一个四边形,每个有计算面积和周长的函数,有边长等变量。请设计四边形对三角形的继承,利用对象访问,实现四边形的周长,面积函数,输出运行结果。Java,类的继承和多态
时间: 2024-10-24 07:13:13 浏览: 23
在Java中,我们可以创建一个`Shape`抽象类作为基础,然后让`Triangle`和`Quadrilateral`分别继承自`Shape`。下面是一个简单的示例:
```java
// 定义Shape抽象类,包含面积和周长的计算方法,以及边长
abstract class Shape {
protected double sideLength;
// 计算面积的方法,需要子类实现
public abstract double getArea();
// 计算周长的方法,需要子类实现
public abstract double getPerimeter();
// 构造函数设置边长
public Shape(double sideLength) {
this.sideLength = sideLength;
}
}
// 三角形类,继承Shape并实现面积和周长计算
class Triangle extends Shape {
@Override
public double getArea() {
return Math.sqrt(3) / 4 * sideLength * sideLength; // 示例公式,实际可能更复杂
}
@Override
public double getPerimeter() {
return 3 * sideLength;
}
}
// 四边形类,继承Shape,并增加额外的特性(比如矩形、梯形等)
class Quadrilateral extends Shape {
private double otherSideLength; // 另一边长度,举例说明
public Quadrilateral(double firstSide, double secondSide) {
super(firstSide);
this.otherSideLength = secondSide;
}
// 实现特定四边形的面积和周长,例如矩形
public double getArea() {
return sideLength * otherSideLength;
}
public double getPerimeter() {
return 2 * (sideLength + otherSideLength);
}
// 输出信息,展示多态性
@Override
public String toString() {
return "Quadrilateral [area=" + getArea() + ", perimeter=" + getPerimeter() + "]";
}
}
public class Main {
public static void main(String[] args) {
Triangle triangle = new Triangle(5);
System.out.println("Triangle: " + triangle);
Quadrilateral quadrilateral = new Quadrilateral(4, 6);
System.out.println("Quadrilateral: " + quadrilateral);
}
}
```
在这个例子中,`Quadrilateral`类继承了`Shape`类,并实现了其抽象方法`getArea()`和`getPerimeter()`。当我们通过`quadrilateral`对象调用这些方法时,由于多态,实际上是调用了`Quadrilateral`类特有的实现。
阅读全文