定义一个接口声明计算矩形的面积和周长的抽象方法,再用一个类实现这个接口,最后编写一个测试类使用这个接口
时间: 2024-11-03 13:21:35 浏览: 18
在面向对象编程中,你可以通过定义接口来规定一组操作的行为规范。首先,我们定义一个名为`Rectangle`的接口,它包含两个抽象方法:`calculateArea()`用于计算矩形的面积,`calculatePerimeter()`用于计算矩形的周长。
```java
// 接口Rectangle.java
public interface Rectangle {
double calculateArea(double length, double width);
double calculatePerimeter(double length, double width);
}
```
然后,我们可以创建一个叫做`Square`的具体类,它是`Rectangle`接口的实现者,因为正方形是矩形的一种特殊情况,它的所有边长度相等:
```java
// Square.java
import java.util.Arrays;
public class Square implements Rectangle {
private double side;
public Square(double side) {
this.side = side;
}
@Override
public double calculateArea() {
return side * side;
}
@Override
public double calculatePerimeter() {
return 4 * side;
}
}
```
在测试类`TestRectangle`中,我们将创建一个`Square`对象并调用接口方法来验证其功能:
```java
// TestRectangle.java
import org.junit.Test;
public class TestRectangle {
@Test
public void testSquareMethods() {
Square square = new Square(5);
double area = square.calculateArea();
double perimeter = square.calculatePerimeter();
System.out.println("Area of the square: " + area);
System.out.println("Perimeter of the square: " + perimeter);
// 验证接口方法是否按照预期工作
assert Arrays.equals(new double[]{area, perimeter}, new double[]{25, 20});
}
}
```
在这个例子中,`TestRectangle`类展示了如何通过接口`Rectangle`间接地操作实现了该接口的`Square`类,体现了接口的多态性。
阅读全文