Тэговые типы (tagged types)
Тэговые типы являются нововведением стандарта Ada95.
Они дополняют традиционную систему типов языка Ада, и позволяют обеспечить полную поддержку объектно-ориентированного программирования.
Концептуально новыми особенностями тэговых типов являются возможность расширения структуры данных типа при наследовании, способствующая программированию посредством расширения, и динамическая диспетчеризация вызовов примитивных операций, являющаяся основой полиморфизма.
Чтобы в последствии не породить терминологической путаницы, необходимо сразу сделать одно важное замечание которое специально предназначено для знатоков ООП, активно использующих другие языки программирования (например, C++ или какой-либо современный диалект Паскаля, поддерживающий объектно-ориентированное расширение).
В традиционном понимании, слово "класс" трактуется как спецификация типа данных и множество методов (операций) этого типа данных.
В отличие от этого, Ада трактует понятие "класс" как набор типов которые объединены иерархией наследования.