java编译器是否在内部为接口创建构造函数?

Mos*_*ses 0 java

下面是一个简单的程序:

interface X {}

public class Y implements X {
    public static void main(String[] args) {
        X x = new Y();
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,据我所知,如果YX之间存在is-a关系,变量x将能够保持Y的对象类型.也就是说该类Ÿ是一个类型的接口的X.

但是我们知道接口不能被实例化,也不能有构造函数.然后编译器是否在.class文件中为接口创建构造函数?

Sur*_*tta 5

但是我们知道接口不能被实例化,也不能有构造函数.然后编译器是否在.class文件中为接口创建构造函数?

没有.

你没有在这里实例化X,你实例化对象Y并且你将它分配给X,因为Y是X的类型.

范例被称为接口编程.