Java发明了接口吗?

时间:2010-05-03 13:47:05

标签: java programming-languages interface history

我了解C ++纯虚拟类,但Java更进一步,为多接口(非实现)继承interface创建了一流(无双关语)概念。它现在是主要的静态类型语言的主要内容。 Java发明了接口概念吗?或者它是否也作为一流的概念出现在较旧的语言中?

7 个答案:

答案 0 :(得分:16)

以下是文章The Java Language Environment的摘要。

Java语言中的接口只是对象声明它实现的方法的规范。接口不包含实例变量或实现代码 - 仅包含常量和方法的声明。 Java语言中的接口概念借鉴了 Objective-C协议概念

http://java.sun.com/docs/white/langenv/Object.doc2.html#6185

答案 1 :(得分:5)

据我所知,Objective-C是第一种使用接口的语言。至少在Java发明之前它就已经存在了。

答案 2 :(得分:4)

我很确定IUnknown和IDispatch在Java之前就已存在......但那是COM,它实际上不是一种语言。

答案 3 :(得分:2)

甚至在Java之前,在C ++接口中调用了没有字段的纯虚拟类。 Java接口背后的想法是删除令人讨厌的多重继承,就像在C ++中一样,但保留类似的功能。

答案 4 :(得分:1)

我很确定Java开发人员没有发明接口的概念,但他们推广它们。

答案 5 :(得分:1)

CORBA使用的IDL,我相信可以追溯到80年代初期。

答案 6 :(得分:0)

我喜欢界面,但是我才刚刚开始学习如何使用它们。编程语言中存在的最灵活,功能最强大的接口系统是Go,但是正如人们指出的那样,Java对其进行了普及,但它们存在于20年前,我希望我能记得我那天找到的语言,以'g开头“我想,也许是关于矿物或花朵的名字。

接口的中心原理是围绕事物在它们之间传递值的方式创建描述。他们创建了一种将一组具有某种用途的数据传递给另一组具有非常紧密用途的表单的方法。接口通常使用命名方案来表示接口定义围绕若干事物之间的抽象公共性而旋转。在编程中,所有内容都归结为字节,因此您可以围绕共享字节构建接口,始终有一些共同的功能。

从实际的意义上讲,接口是围绕您未指定的数据类型的一组方法,除非模糊地定义。 Go会教给您有关接口的知识。接口以最面向对象的语言(如OP,java)最为显着,但是据我所知,Go具有最强大的接口系统。 Go是静态类型的,但是在Go中,接口类型对数据没有任何约束。只有您通过接口类型定义的限制可以通过。

我才刚刚开始学习如何使用接口编写Go语言,但是Go程序员的经验所获得的很多智慧对于对接口感兴趣的人都是有帮助的。接口必须紧凑且功能齐全。很多时候,您不需要定义接口,因为数据太不同了。也许用于存储和传输,所有数据===所有数据。这就是接口的作用。两个不同的系统,它们共享什么数据结构。这正是界面。