接口作为方法/构造函数参数

时间:2018-09-27 20:01:00

标签: java methods parameters interface override

我正在尝试使用现有程序包在其上创建自己的应用程序。但是我不知道如何调用接口参数化方法。

在包装上有一个构造函数为

的类
public class App{
protected App(Logic logic) {
    this(logic.configuration().welcomeScreen, logic.configuration().appName, Optional.of(logic));
}
}

界面是这样的:

public interface Logic extends X, Y {

default Configuration configuration() {
    return new AppConfiguration(1000, "Hello world", true);
}
default void initialize() {
    System.out.println("Starting the application.");
}
}

配置如下:

public final class Configuration {
public final int tick;
public final String appName;
public final boolean welcomeScreen;

public Configuration(int tick, String appName, boolean welcomeScreen) {
    this.tick = tick;
    this.appName = appName;
    this.welcomeScreen = welcomeScreen;
}
}

如何使用非默认配置(1000,“ Hello world”,是)来调用应用程序?

问题与此类似:interface as a method parameter in Java,但我无法把握以接口作为参数的想法。

1 个答案:

答案 0 :(得分:1)

您提供了一个实现接口并覆盖这些方法的类;就如此容易。 default方法是可重写的,并且将这个interface作为参数的方法可以将新类作为参数(因为它实现了接口);因此将调用该类中的方法。