upvote
First of all you read the point of view of Java authors on the linked post.

Second, yes interfaces are based on protocols.

You can do dispatching via Proxy classes, reflection, or invokedynamic that came later as performance improvement.

Then you have the classloaders for a similar purpose as Objective-C plugins.

Java Remote Invocation, RMI, works similarly to PDO, Portable Distributed Objects.

Sun collaborated with NeXT on OpenSTEP before Java came to be.

Another inspiration was Distributed Objects Everywhere framework, born as Objective-C, later rewriten in Java and rebranded as the first edition of Java EE.

Likewise Web Objects went from Objective-C, to dual Objective-C/Java shortly before NeXT was acquired.

reply