Brad Cox y sus amigos agregaron una capa delgada de Smalltalk encima de C.
Objective-C tiene mucho más en común con el estilo de envío de mensajes altamente dinámico de Smalltalk que el de C ++.
Una diferencia importante es que en Objective-C no te preocupas demasiado por qué clase es algo: te importa qué mensajes entiende algo. Puede tener objetos que cambien el conjunto de mensajes que entienden, en tiempo de ejecución.
Habiendo dicho que los dos idiomas tienen ideas muy diferentes de lo que es OO, todavía se comparten muchas ideas / principios: herencia, delegación, polimorfismo, etc. Encontrará fácilmente muchos ejemplos de los diversos patrones de OO en el código escrito en cualquier idioma.
virtual
: un objeto ni siquiera necesita entender un mensaje para manejarlo. Puede reenviar silenciosamente el mensaje a algún objeto interno que pueda entender el mensaje, lo que permite una representación transparente para admitir, por ejemplo, la carga diferida de una instancia desde una base de datos.Objective-C es C, con una capa de Smalltalk.
De acuerdo con Wikipedia :
Está orientado a objetos, pero no es de C ++ directamente.
Entonces sí, es C con algunas de las habilidades OO de Smalltalk .
fuente