Java发明了接口吗?

问题描述 投票:10回答:7

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

java programming-languages interface history
7个回答
16
投票

这是文章The Java Language Environment的摘要。

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

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


5
投票

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


4
投票

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


2
投票

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


1
投票

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


1
投票

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


0
投票

我喜欢界面,但我刚开始学习如何使用它们。编程语言中最灵活,最强大的界面系统是Go,但正如人们所指出的那样,Java推广它们但它们存在于20年前,我希望我能记住我前几天发现的语言,以'g开头“我想,也许是名字中的矿物或花卉。

接口的核心原则是围绕如何在两者之间传递值来创建事物的描述。他们创建了一种方法,将一大堆数据与一些用途一起传递给另一个具有非常接近的用途的表单。接口通常使用命名方案来指示接口定义围绕几个事物之间的抽象共性。在编程中,一切都归结为字节,因此您可以围绕共享字节构建接口,总有一些共同特征。

实际上,接口是一组围绕您未指定的数据类型的方法,除了模糊之外。 Go会教你很好的接口。接口在最面向对象的语言中最为突出,如OP,java,但据我所知,Go拥有最强大的接口系统。 Go是静态类型的,但是接口类型对Go中的数据没有约束。只有您通过接口可以传递的类型定义的限制。

我刚刚开始学习如何使用接口编程Go,但Go程序员经验所获得的许多智慧对于任何对接口感兴趣的人都很有帮助。接口需要紧凑和功能。通常,您不需要定义接口,因为数据太不同了。也许对于存储和传输,所有数据===所有数据。这就是接口的用途。两个不同的系统,它们共享哪些数据结构。这正是一个接口。

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