定義一個直角三角形派生類,以上一題為父類,輸入值為兩個直角邊長,覆蓋方法包括:(1)計算全部邊長;(2)計算面積。創建該類的一個對象,輸出其全部邊長、全部内角、周長和面積。
时间: 2024-09-30 15:03:48 浏览: 21
在面向对象编程中,我们可以创建一个直角三角形的基类,然后基于这个基类定义一个衍生类,如`RightAngleTriangle`。假设我们已经有了一个名为`Shape`的基础几何形状类,它包含通用属性和方法,例如边长和计算周长。为了针对直角三角形特性进行定制,我们可以这样做:
```java
// 基础 Shape 类
public abstract class Shape {
protected double side1;
protected double side2;
public Shape(double side1, double side2) {
this.side1 = side1;
this.side2 = side2;
}
// 公共方法
public abstract double getPerimeter();
}
// 直角三角形衍生类 RightAngleTriangle
public class RightAngleTriangle extends Shape {
private double hypotenuse; // 斜边
// 构造函数,覆盖父类构造并计算斜边
public RightAngleTriangle(double a, double b) {
super(a, b);
hypotenuse = Math.sqrt(a * a + b * b);
}
// 覆盖父类方法,计算全部边长
@Override
public double getPerimeter() {
return side1 + side2 + hypotenuse;
}
// 计算面积,特定于直角三角形
public double getArea() {
return 0.5 * side1 * side2;
}
// 输出全部信息
public void displayInfo() {
System.out.println("边长: " + side1 + ", " + side2 + ", " + hypotenuse);
System.out.println("内角: 90度 (直角)");
System.out.println("周长: " + getPerimeter());
System.out.println("面积: " + getArea());
}
}
```
现在你可以创建一个 `RightAngleTriangle` 的实例,并显示所有相关信息:
```java
public static void main(String[] args) {
RightAngleTriangle triangle = new RightAngleTriangle(3, 4);
triangle.displayInfo();
}
```
阅读全文