C 언어에서 파생된 객체 지향 프로그래밍 언어로써 C 언어에 무형성(untyped) 순수 객체 지향 언어인 스몰토크 형식의 객체 지향 패러다임을 확장 형태로 얹은 언어
하지만 오브젝티브-C는 C 위에 덮인 얇은 층이라 볼 수 있다. 오브젝티브-C는 C++와 달리 C 언어의 엄격한 상위집합이다. 엄격한 상위집합이라는 말은 모든 C프로그램은 다 오브젝티브-C로 컴파일 가능하며, 프로그램의 의미도 양 언어가 동일하다는 의미이다.
C++와는 달리 다중상속을 지원하지 않으며, 그 대신 자바의 인터페이스에 해당하는 프로토콜(protocol)을 정의할 수 있다. 또한 카테고리(category)를 통해 기존 클래스에 새로운 메쏘드를 추가함으로써 클래스의 기능을 확장할 수 있다. 이는 상속을 통해서만 기능을 확장할 수 있는 대다수의 객체 지향 언어와 크게 구별되는 특성이다. C++나 자바 등과는 달리 객체에 대해서 완전한 동적 형 변환(dynamic typing)을 지원한다.