未实现接口的对象实例[重复]

问题描述 投票:0回答:1

我有一个代码示例,它定义了一个

Worker
接口和一个未实现该接口的
Employee
类。在我的 main 方法中,我声明了一个名为
Worker
w
并将其实例化为
Employee

编译和运行得很好,这让我很困惑。如何在不实现它的情况下创建一个新的

Employee
对象作为
Worker

public interface Worker {
    void work(double a);
}

public class Employee {
    public static void test() {
        System.out.println("Test");
    }

    public static void test(double a) {
        System.out.println("Number : " + a);
    }
}

public class MainClass {
    public static void main(String[] args) {
         Worker w = Employee::test;
         w.work(12);
    }
}
java interface functional-interface
1个回答
11
投票

根本没有创建

Employee
的实例。您正在使用 方法引用 来实现
Worker
接口,这是一个 功能接口,因为只有一个抽象方法。

Employee::test
方法引用(接受
double
参数的重载)满足该功能接口,因此从方法引用到功能接口的转换成功。

© www.soinside.com 2019 - 2024. All rights reserved.