谁能在下面的例子中解释一下为什么接口(interface)方法在类构造函数中作为参数传递时可以直接调用?我尝试在 Java 语言规范中搜索规则,但找不到。
public interface Interface {
public void foo();
}
public class Main {
public Main() {}
public Main(Interface obj) {obj.foo();}
public static int test() {return 123;}
}
最佳答案
只是一种多态行为,Java 期望实现该接口(interface)的方法。
这意味着,任何实现该方法的类都是一个 Interface
,因此您可以拥有该方法的许多不同实现。
比方说:
public class ImplementedInterface implements Interface
{
public void foo()
{
System.out.println("Hey!, i'm implemented!!");
}
}
所以当你打电话时:
Interface aux = new ImplementedInterface();
Main m = new Main(aux);
文本“嘿!我实现了!!”将被打印出来。
关于java - 类构造函数中调用的接口(interface)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17480117/