La hierarchy consiste in una relazione che il linguaggio di programmazione, o il programmatore stesso, stabilisce tra due classi.
Se la classe B eredita dalla classe A, si dice che B è una sottoclasse di A e che A è una superclasse di B. Denominazioni alternative equivalenti, sono classe padre, classe madre o classe base per A e classe figlia o classe derivata per B.
A seconda del linguaggio di programmazione, la hierarchy può essere hierarchy singola o semplice (ogni classe può avere al più una superclasse diretta) o multipla (ogni classe può avere più superclassi dirette).
In generale, l’uso della hierarchy dà luogo a una gerarchia di classi; nei linguaggi con la hierarchy singola, si ha un albero se esiste una superclasse “radice” di cui tutte le altre classi sono direttamente o indirettamente sottoclassi (come la classe Object nel caso di Java) o a una foresta altrimenti; la hierarchy multipla definisce invece una gerarchia a grafo aciclico diretto.