Java中如何把接口当做入参

在Java中,我们经常会遇到需要把接口作为方法的参数传入的情况。这种用法可以让我们的代码更加灵活和易于扩展。接下来,我们将通过一个简单的示例来说明如何在Java中把接口当做入参。

示例

假设我们有一个Calculator接口,其中定义了一个calculate方法用于执行计算操作。然后我们有一个MathUtils工具类,其中有一个compute方法,可以接收一个实现了Calculator接口的对象,并调用其calculate方法进行计算。接口和工具类的代码如下:

// 定义Calculator接口
public interface Calculator {
    int calculate(int a, int b);
}

// 定义MathUtils工具类
public class MathUtils {
    public static int compute(int a, int b, Calculator calculator) {
        return calculator.calculate(a, b);
    }
}

接下来,我们创建一个实现了Calculator接口的AdditionCalculator类,用于实现两个数字的加法运算。代码如下:

public class AdditionCalculator implements Calculator {
    @Override
    public int calculate(int a, int b) {
        return a + b;
    }
}

最后,我们在主程序中调用MathUtils工具类的compute方法,并传入一个AdditionCalculator对象进行加法运算。代码如下:

public class Main {
    public static void main(String[] args) {
        AdditionCalculator additionCalculator = new AdditionCalculator();
        int result = MathUtils.compute(10, 20, additionCalculator);
        System.out.println("Result of addition: " + result);
    }
}

在上面的示例中,我们实现了一个简单的加法计算器,并通过把AdditionCalculator对象作为参数传入MathUtils工具类的compute方法来执行加法运算。

流程图

flowchart TD
    Start --> InputData
    InputData --> CallComputeMethod
    CallComputeMethod --> Calculate
    Calculate --> OutputResult
    OutputResult --> End

总结

通过将接口作为方法的参数传入,我们可以实现更加灵活和可扩展的代码结构。这种做法可以让我们在不修改现有代码的情况下,轻松地扩展功能或修改计算逻辑。希望本文能帮助您更好地理解在Java中如何把接口当做入参。