Un tipo tagged es un tipo privado o un
record en cuya declaración se usa la palabra reservada
tagged.
Un tipo tagged puede ser extendido, dando lugar a otro tipo que se dice derivado de aquel. El tipo del que se deriva se dice que es "padre" del derivado. Del tipo derivado se pueden a su vez derivar otros, formando una jerarquía de tipos (una familia de tipos). Los tipos derivados también son tagged. Cada objeto tagged tiene un atributo llamado Tag que identifica su clase concreta.
El tipo primitivo de una jerarquía no tiene por qué tener ningún campo, de forma que sólo existan los añadidos por sus extensiones.
package Ejemplo is type Persona is tagged private; -- Declaración de tipo tagged private type Persona is tagged record Nombre : String (1 .. 50); NIF : String (1 .. 9); end record; end Ejemplo;
Tipo primitivo sin campos:
type Otro is tagged null record;