Objective-C is message-passing, Java and C++ are not.
To start Java's interfaces are loosey based on Objective-C protocols.
As for the rest,
https://cs.gmu.edu/~sean/stuff/java-objc.html
Objective-C is message-passing, Java and C++ are not.