Com els exemples il·lustrats més amunt, els missatges a Objective-C apareixen en les mateixes posicions sintàctiques que les crides de funcions en C estàndard. Però, com que els mètodes "van més enllà" d'un objecte, els missatges es comporten diferentment que la crida a una funció.
En particular, un objecte pot se operat només per aquells mètodes que hi estan definits. No poden confondre'ls amb els mètodes definits per altres tipus d'objectes, fins i tot si un altre objecte té un mètode amb el mateix nom. Això vol dir que dos objectes poden respondre de forma diferent al mateix missatge. Per exemple, cada tipus d'objecte envia un missatge display podria mostrar-se d'un única manera. Un Cercle i un Rectangle podria respondre de forma diferent a instruccions idèntiques a un moviment del cursor.
Aquesta característica, referida a com el polimorfisme, juga un rol significatiu en el disseny dels programes orientats a objectes. Juntament amb l'enllaçat dinàmic, aquest permet que escriguis codi que pot aplicar-se a qualsevol nombre de tipus diferents d'objectes, sense que tinguis que escollir en cap moment el codi que el tipus d'objectes que podrien ser. Podrien inclús ser objectes que serán desenvolupats més endavant, per altres programadors treballant en altres projectes. Si escrius codi que envii un missatge display a una variable id, qualsevol objecte que té el mètode display és un receptor potencial