gpt4 book ai didi

java - Java中传递接口(interface)的时候能不能实例化一个接口(interface)?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:01:24 24 4
gpt4 key购买 nike

<分区>

例如,如果我有一个接口(interface):

interface Executable {
void execute();
}

您将无法显式实例化它。如果您尝试创建接口(interface) Executable 的新实例,则会出现编译错误,提示“无法实例化 Executable 类型”。

但是,当尝试将接口(interface)传递给方法时,我意识到您可以这样做:

class Runner {
public void run(Executable e) {
System.out.println("Executing block of code...");
e.execute();
}
}

public class App {
public static void main(String[] args) {
Runner r = new Runner();

// When passing the Executable type, am I instantiating it?
r.run(new Executable() {
public void execute() {
System.out.println("Executed!");
}
});

}
}

这怎么可能?您不是因为 new 关键字而创建接口(interface) Executable 的新实例吗?有什么我不明白的吗?非常感谢简要说明和一些示例!

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com