You should never call a private method from the object other then where it is defined. In fact the compiler should give you an error. You can always call a privet method from any public API as long as they are in the same class. That is called data incapsulation, when you hide your data (private implementation) from end user but provide a public API that actually calls its private implementation.