Если вы вызвали _something
для объекта класса B
, то вы по существу переопределили его:
B *myClass = [B alloc] init];
[myClass _something];
Выход:
B
Если бы вы сделали следующий пример, у вас не будет переопределения _something
, и вы получите вывод класса A
:
A *myClass = [A alloc] init];
[myClass _something];
Выход:
A
Это действительно зависит от класса, из которого вы создали экземпляр вашего объекта из-за динамической природы сообщений:
A *myClass = [B alloc] init];
[myClass _something];
Вывод:
B