Если одним словом - это компенсация отсутствия множественного наследования в ООП моделях допускающих единичное наследование. Нужны за тем же, зачем нужны базовые абстрактные классы, но применяются тогда когда таких классов нужно много (а множественного наследования нет).