Foreign language objects appear to behave exactly as native objects, meaning that methods are called in native syntax. For typical usage, this is the only thing that matters.
The foreign language objects are not, however, truely native. The objects are actually "bridge objects", which forward method calls to the native object. Practically speaking, this means a couple of things:
Bridge objects always appear to be of the same type, no matter what type they actually represent in their native language.
Functions which inspect internal object state will be inspecting the bridge object, not the object that the bridge represents.
These details are subtle and do not effect most typical object usage. Just remember that bridge objects are "shells" for other objects, and not the actual objects they appear to be.