多态和接口结合: 定义一个Shape接口,里面有一个area()方法。然后创建两个实现类Circle和Rectangle,分别计算它们的面积。使用多态来调用不同形状的area()方法。
时间: 2024-09-11 15:14:43 浏览: 97
在面向对象编程中,通过多态和接口的结合可以实现灵活的设计。首先,我们定义一个`Shape`接口,它声明了一个共同的行为`area()`方法:
```java
public interface Shape {
double area();
}
```
接着,我们有两个实现了这个接口的具体类,比如`Circle`和`Rectangle`:
```java
public class Circle implements Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
public double area() {
return Math.PI * radius * radius;
}
}
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 area() {
return width * height;
}
}
```
现在我们可以创建`Shape`类型的引用,然后存储`Circle`或`Rectangle`的对象,通过这个引用调用各自的`area()`方法,实现了多态性:
```java
Shape circle = new Circle(5);
Shape rectangle = new Rectangle(4, 6);
System.out.println("Circle Area: " + circle.area());
System.out.println("Rectangle Area: " + rectangle.area());
```
在这个例子中,虽然变量是`Shape`类型的,但实际上调用的是每个特定形状的实际面积计算方法。这就是多态允许的不同实例共享同一接口,但执行各自特有功能的一个体现。
阅读全文