Java中的接口类

Java中的接口类,java,Java,这个问题可能有点离题,但我真的不明白为什么Java中没有接口类 定义的每个类都有其由JVM构造的java.lang.class对象。对我来说,接口自然不应该属于类对象,而是java.lang.Interface对象。那是有道理的,不是吗 我知道存在这样一种类可分配性,这样实现接口的类就可以被强制转换到该接口上,但是将其称为类型而不是类不是一个更好的主意吗?然后扩展类型以创建类和接口 我肯定Java开发人员不会对此采取任何行动,但我只是好奇。你可能是对的类不仅表示类和接口,还表示枚举、数组和基元类

这个问题可能有点离题,但我真的不明白为什么Java中没有
接口

定义的每个类都有其由JVM构造的
java.lang.class
对象。对我来说,接口自然不应该属于
对象,而是
java.lang.Interface
对象。那是有道理的,不是吗

我知道存在这样一种类可分配性,这样实现接口的类就可以被强制转换到该接口上,但是将其称为
类型
而不是
不是一个更好的主意吗?然后扩展
类型
以创建
接口


我肯定Java开发人员不会对此采取任何行动,但我只是好奇。

你可能是对的<代码>类不仅表示类和接口,还表示枚举、数组和基元类型<代码>类型似乎更能描述其用途。拥有像
AnonymousClass
这样的派生类也是有意义的。目前,一些方法,如
getEnclosuringConstructor()
仅适用于某些类型的类

事实上,C#的设计者决定称之为他们的等价物


要知道为什么会这样做,你必须询问做出决定的人。我的猜测是,在Java 1.0中,这更有意义,因为
Class
.Class
文件更紧密地联系在一起。

为此使用单独的类会有什么好处?当然,因为从关键字的角度来看,它会有所不同。但是同样,单独的
接口
类有什么好处呢?因为这会造成混乱。我认为至少可以试着质疑一下没有
接口
类的原因。同样的问题可能是为什么接口被编译成
*.class
文件。也许JLS中有答案:)……在Java8之前,并没有接口实例这样的东西。