Un oggetto è un'entità che comprende una struttura dati, che definisce lo stato dell'oggetto, e un'interfaccia, che ne definisce il comportamento. Un metodo è una procedura eseguibile, associata ad un oggetto, che opera sulla sua struttura dati. Una classe è una definizione astratta di oggetti che hanno in comune la stessa struttura dati e la stessa interfaccia, e un oggetto è un'istanza di una classe. Le classi vengono istanziate tramite allocazione e inizializzazione di aree di memoria; l'inizializzazione è compito di un metodo speciale, detto costruttore. Gli elementi di una classe possono essere pubblici, se accessibili al di fuori della classe, o privati; gli elementi privati costituiscono l'implementazione della classe, gli elementi pubblici ne costituiscono l'interfaccia; l'implementazione di una classe può essere cambiata senza dover cambiare l'interfaccia.
Una classe può essere derivata da un'altra classe: una classe derivata eredita l'interfaccia e la struttura dati della classe di base, e, tipicamente, le estende con nuovi elementi. Inoltre, la classe derivata può ridefinire l'implementazione dei metodi della classe di base.
Un metodo di una classe è virtuale se il suo corpo non è definito. Una classe con metodi virtuali è detta astratta, e non può essere istanziata: può solo essere usata come classe di base per altre classi. Ogni istanza di una classe derivata è anche istanza della classe di base: la possibilità, per diverse istanze di una stessa classe di base, di avere implementazioni differenti è detta polimorfismo.
Lo standard MPEG-4 utilizza oggetti audio-video (AVO), che sono rappresentazioni di entità audio, video, o audio-video.