I’m aware that most things in modern programming languages are at least partially based on features in earlier languages.
This leads me to wonder where java got the inspiration for interfaces from. Was it mostly their own creation? Was it based on fully Abstract Base classes(with multiple inheritance) ?
In a recent Objective-C book I was reading
Learn Objective-C on the Mac, the authors suggest that the primary inspiration for Java’s interfaces are from Objective-C’s implementation of Formal Protocols.Formal Protocols in Obj-C are files, just like Java’s Interfaces, that are filled with abstract methods – or plainly just the method headers – that the developer must implement if the Formal Protocol is used. In the most recent update to Apple’s Cocoa, Formal Protocols can also include optional methods which the developer doesn’t need to implement if the class implements the protocol.