Classes desenvolvidas com a principal finalidade de serem herdadas por outras classes, são frequentemente chamadas classes abstractas. Uma classe criada com a intenção de criar instâncias é chamada classe concreta [Jacobson et al., 1993].
Podem definir-se classes paramétricas (ou classes genéricas) como classes que servem de modelo a outras classes. Estas classes têm que ser instanciadas antes de se poderem criar objectos [Booch, 1994]
Fica, assim, definida uma hierarquia de classes. Classes que se situem mais acima na hierarquia de herança, relativamente a outras, designam-se por superclasses (correspondem a classes base). De forma análoga, classes que se situem mais abaixo na hierarquia designam-se por subclasses (classes derivadas). Diz-se que uma classe é uma superclasse/subclasse directa de outra, se se situar directamente acima/abaixo na hierarquia de classes. Diz-se também que as subclasses correspondem a a especializações de superclasses (mais genéricas) [Booch, 1994].