Java中将抽象类作为参数使用讲解
时间: 2024-10-18 12:13:10 浏览: 7
在Java中,如果你有一个抽象类并且想把它作为参数传递给一个方法,这通常用于回调函数或者策略模式等场景。这种做法允许你提供多种实现,并让调用者能够动态选择使用哪种实现。
例如,假设你有一个抽象的Shape类,它有一些抽象方法如`getArea()`:
```java
abstract class Shape {
abstract double getArea();
}
```
你可以创建一个方法,这个方法接受Shape类型的参数:
```java
public void printArea(Shape shape) {
System.out.println("Area of the shape is: " + shape.getArea());
}
```
然后,你可以创建具体的形状类如Circle或Rectangle并实例化它们:
```java
class Circle extends Shape {
private double radius;
public Circle(double radius) { this.radius = radius; }
@Override
double getArea() { return Math.PI * radius * radius; }
}
class Rectangle extends Shape {
private double width, height;
public Rectangle(double width, double height) { this.width = width; this.height = height; }
@Override
double getArea() { return width * height; }
}
// 在其他地方,动态传递不同的形状
Circle circle = new Circle(5);
Rectangle rectangle = new Rectangle(4, 6);
printArea(circle); // 输出圆的面积
printArea(rectangle); // 输出矩形的面积
```
通过这种方式,你可以将任何实现了Shape接口的对象传递给`printArea`方法,展示了多态的优势——灵活性和代码复用。
阅读全文