La abstracción permite generalizar conceptualmente un conjunto de objetos y sus atributos y propiedades, ignorando los detalles concretos de cada objeto. Los tipos abstractos de datos son abstracciones que encapsulan los estados y operaciones de una entidad. La clasificación divide el programa en objetos que se agrupan para formar cosas más complejas.