Java利用多态性实现圆和矩形类,计算圆和矩形的面积和周长
时间: 2024-10-11 14:14:23 浏览: 49
Java 实验 用接口实现求三角形,圆形,矩形的面积和周长
5星 · 资源好评率100%
在Java中,我们可以利用多态性和继承来创建一个通用的形状类Shape作为父类,然后分别为Circle和Rectangle这两个具体的形状类实现Area(面积)和Perimeter(周长)的方法。这里假设有一个Shape接口和两个实现了它的子类:
```java
// Shape接口
interface Shape {
double getArea();
double getPerimeter();
}
// 圆形类Circle,继承自Shape
class Circle extends Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
double getArea() {
return Math.PI * radius * radius;
}
@Override
default double getPerimeter() {
return 2 * Math.PI * radius;
}
}
// 矩形类Rectangle,继承自Shape
class Rectangle extends Shape {
private double length;
private double width;
public Rectangle(double length, double width) {
this.length = length;
this.width = width;
}
@Override
double getArea() {
return length * width;
}
@Override
double getPerimeter() {
return 2 * (length + width);
}
}
// 主程序示例
public class Main {
public static void main(String[] args) {
Shape circle = new Circle(5);
Shape rectangle = new Rectangle(4, 6);
System.out.println("Circle area: " + circle.getArea());
System.out.println("Circle perimeter: " + circle.getPerimeter());
System.out.println("Rectangle area: " + rectangle.getArea());
System.out.println("Rectangle perimeter: " + rectangle.getPerimeter());
}
}
```
在这个例子中,无论我们创建的是Circle还是Rectangle对象,都可以通过Shape类型的引用进行操作,这就是多态性的体现。虽然它们都是Shape,但是根据实际的对象类型(即动态绑定),会调用相应子类的方法。
阅读全文