我知道现代编程语言中的大部分内容至少基于早期语言中的功能部分。
这让我想知道java从哪里获得了界面的灵感。它主要是他们自己的创作吗?它是基于完全抽象基类(具有多重继承)吗?
答案 0 :(得分:7)
在最近的一篇Objective-C书中,我正在阅读Learn Objective-C on the Mac
,作者认为Java接口的主要灵感来自于Objective-C对Formal Protocols的实现。
Obj-C中的正式协议就像Java的接口一样,填充了抽象方法 - 或显然只是方法标题 - 如果使用正式协议,开发人员必须实现这些方法。在Apple的Cocoa的最新更新中,Formal Protocols还可以包含可选方法,如果类实现协议,开发人员不需要实现这些方法。
答案 1 :(得分:6)
我认为Java的设计者意识到有a lot of flaws in using multiple implementation inheritance,但仍希望能够繁殖继承。因此,解决方案是multiple interface inheritance。
另外,从上一个链接:
相反,Java的设计师选择了 允许多个接口继承 通过使用接口,一个想法 借鉴Objective C的协议。 多接口继承允许 一个继承许多不同的对象 方法签名与警告 继承对象必须实现 那些继承的方法。
所以,肖恩确实是对的。
答案 2 :(得分:0)
实际上它来自多重继承和抽象类的想法。我们亲爱的Goslin先生不想在课堂上进行多重继承。