首先,术语:它是"Ada",而不是"ADA" - 它以"Ada Lovelace"命名; 它不是首字母缩略词.
子类型与其基类型兼容,因此您可以将基类型的操作数与基类型的操作数混合.例如:
subtype Week_Days is Integer range 1..7;
Run Code Online (Sandbox Code Playgroud)
由于这是一个子类型,您可以(例如)添加1到工作日以获取下一个工作日.
派生类型是完全独立的类型,具有与其基本类型相同的特征.您不能将派生类型的操作数与基类型的操作数混合.例如,如果您使用:
type Week_Day is new Integer range 1..7;
Run Code Online (Sandbox Code Playgroud)
那么你将无法在工作日添加一个整数来获得另一个工作日.要对派生类型进行操作,通常您自己定义这些操作(例如,创建包).同时,派生类型会"继承"其基类型的所有操作(即使是一些可能没有意义的操作),因此您仍然可以添加.