Manchmal macht es Sinn, sich auf einen bestimmten Teilbereich eines Typs zu beziehen, ohne daß man einen gänzlich neuen Typ definieren will. Für solche Situationen bietet Ada das Konzept der Subtypen an. Ein Subtyp besteht aus einem Verweis auf seinen zugrundeliegenden Typ - den Basis-Typ - und einer Bedingung. Ein Wert gehört zu einem bestimmten Subtyp, wenn er zum zugrundeliegenden Typ gehört und die Bedingung erfüllt. Eine solche Bedingung kann sein:
subtype Arbeitstag is Tag range Montag .. Freitag;
Es soll noch einmal darauf hingewiesen werden, daß durch einen Subtyp kein neuer Typ definiert wird, sondern nur eine Bedingung auf den Basis-Typ erzwungen wird. Zuweisungen von Variablen eines Subtyps auf solche des Basis-Typs (und umgekehrt) sind möglich, solange die zugehörige Bedingung erfüllt ist.