用方法重载的知识点设计Java类模拟“让学生计算面积”,这里学生可以计算圆类面积,也可以计算长方形面积。 编写测试代码,验证之。
时间: 2024-09-29 10:04:15 浏览: 28
在Java中,我们可以创建一个`Shape`接口作为所有形状的基础,然后为`Circle`和`Rectangle`两个类实现这个接口,并提供各自的`calculateArea()`方法,以体现方法重载的概念。这里是一个简单的例子:
```java
// Shape 接口
public interface Shape {
double calculateArea();
}
// Circle 类,实现 Shape 接口
public class Circle implements Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
public double calculateArea() {
return Math.PI * radius * radius;
}
}
// Rectangle 类,也实现 Shape 接口
public class Rectangle implements Shape {
private double width;
private double height;
public Rectangle(double width, double height) {
this.width = width;
this.height = height;
}
@Override
public double calculateArea() {
return width * height;
}
}
// 测试类 Test
public class Test {
public static void main(String[] args) {
// 创建一个圆形和一个矩形实例
Shape circle = new Circle(5);
Shape rectangle = new Rectangle(4, 6);
// 计算并打印各自面积
System.out.println("Circle area: " + circle.calculateArea());
System.out.println("Rectangle area: " + rectangle.calculateArea());
// 验证方法重载
Shape shape = new Circle(3); // 可以根据需要动态创建任意形状的对象
System.out.println("Another shape (circle) area: " + shape.calculateArea()); // 将自动调用相应的calculateArea方法
}
}
```
在这个例子中,`calculateArea()`方法在`Circle`和`Rectangle`中实现了不同的计算逻辑,体现了多态性。当你通过`Shape`类型的引用调用`calculateArea()`时,会根据实际对象的具体类型调用对应的实现。
阅读全文