package com.shape; public class Triangle extends Shape { private double sideA; private double sideB; private double sideC; public Triangle(double sideA, double sideB, double sideC) { if (!isValidTriangle(sideA, sideB, sideC)) { throw new IllegalArgumentException("输入的三边无法构成三角形(必须满足三角形不等式)"); } this.sideA = sideA; this.sideB = sideB; this.sideC = sideC; } // 判断是否能构成三角形(三角形不等式) private boolean isValidTriangle(double a, double b, double c) { return (a + b > c) && (a + c > b) && (b + c > a) && a > 0 && b > 0 && c > 0; } @Override public double getArea() { // 使用海伦公式计算三角形面积 double p = (sideA + sideB + sideC) / 2; // 半周长 return Math.sqrt(p * (p - sideA) * (p - sideB) * (p - sideC)); } }