Because you are calling methods from an area outside the class.
For instance:
$YourClass = new YourOverloadableClass();
$YourClass->overloaded = 'test';
The above code is "converted" to:
$YourClass->__set('overloaded', 'test');
Later, when you get the property value, for example:
$var = $YourClass->overloaded;
This code translates to:
$YourClass->__get('overloaded');
__get __set , public.