用Java中形状和屏幕类,抽象 一个能表示水平等腰梯形的 Trapezoid 类,在设计一个测试类 联合使用其他形状的一起测试
时间: 2024-10-12 08:10:27 浏览: 29
在Java中,我们可以创建一个抽象`Trapezoid`类来表示水平等腰梯形,利用抽象类和接口来定义共性的属性和方法。首先,我们需要创建一个抽象`Shape`类,它可能包含一些基本的几何属性如宽度、高度或面积的计算方法:
```java
abstract class Shape {
protected double width;
protected double height;
// 构造函数
public Shape(double width, double height) {
this.width = width;
this.height = height;
}
// 抽象方法
abstract double getArea();
// 其他可能的方法...
}
```
接下来,我们为`Trapezoid`类实现`Shape`接口,并添加特有的等腰特性:
```java
class Trapezoid extends Shape implements Shape {
private double base1; // 上底
private double base2; // 下底
public Trapezoid(double base1, double base2, double height) {
super(base1 + base2, height);
this.base1 = base1;
this.base2 = base2;
}
@Override
public double getArea() {
return (base1 + base2) * height / 2;
}
}
```
然后,我们可以创建一个`ScreenTest`测试类来联合测试不同类型的形状:
```java
public class ScreenTest {
@Test
void testShapes() {
Shape rectangle = new Rectangle(5, 4); // 实例化Rectangle类
Shape square = new Square(3); // 实例化Square类
Shape trapezoid = new Trapezoid(2, 6, 3); // 实例化Trapezoid类
System.out.println("Rectangle area: " + rectangle.getArea());
System.out.println("Square area: " + square.getArea());
System.out.println("Trapezoid area: " + trapezoid.getArea());
// 进行更多特定于每个形状的测试...
}
}
```
在这个例子中,`ScreenTest`通过`Shape`接口对所有形状进行了统一的测试,无论它们是矩形、正方形还是等腰梯形。同时,每个具体的形状类实现了各自特有的行为。
阅读全文