Abstrações são conceitos fundamentais na programação orientada a objetos (POO) que permitem criar modelos genéricos ou abstratos de objetos do mundo real. Elas fornecem uma forma de representar características e comportamentos comuns a diferentes objetos em uma hierarquia de classes.
Uma abstração pode ser definida como uma classe abstrata ou uma interface. Ambas têm o propósito de fornecer um nível de abstração, mas existem diferenças entre elas.