O Objective-C é uma camada muito fina construída sobre a linguagem C e constitui-se num superconjunto estrito de C. Ou seja, é possível compilar qualquer programa C com um compilador Objective-C. O Objective-C deriva sua sintaxe tanto do C quanto do Smalltalk. A maior parte de sua sintaxe (incluindo pré-processamento, expressões, declaração e chamadas de funções) foi herdada da linguagem C, enquanto a sintaxe para os aspectos orientados a objetos foi criada para habilitar passagem de mensagens no estilo Smalltalk.
O modelo de orientação a objeto do Objective-C é baseado na passagem de mensagens para instâncias de objeto.No Objective-C, não simplesmente se chama um objeto, envia-se uma mensagem. Diferente do modelo de programação estilo Simula usado por C++.A diferença entre estes dois conceitos está na forma como o código referenciado pelo nome de mensagem ou método é executado. Em Smalltalk e Objective-C, o alvo de uma mensagem é resolvido em tempo de execução, com o objetivo de receber-se interpretar a mensagem.