text: В мейнстримных объектно-ориентированных языках вроде С++ или Java, абстракция обеспечивается посредством классов, которые совмещают в одной концепции сразу ряд возможностей (наследование, подтипизацию и динамическую диспетчеризацию), что затрудняет их формализацию и может приводить к нежелательным последствиям при неосторожном использовании.