赋值是Ada中派生类型和子类型之间的唯一区别吗?

赋值是Ada中派生类型和子类型之间的唯一区别吗?,ada,derived-types,subtyping,Ada,Derived Types,Subtyping,我读过,派生类型与它们各自的父类型完全不同,但是它们确实继承了它们的所有父操作 换句话说,您可以将派生类型a传递给作为参数接收a类型B的操作,该类型是a的父级。但是,不能将a类型的变量分配给B类型的变量,反之亦然 如上所述,派生类型和子类型之间的唯一区别是赋值。是吗?派生类型只继承它们派生的类型的基元操作 从技术上讲,类型派生创建了一组新的基本操作,因此您不能“将派生类型a传递给作为参数接收a typeB的操作,后者是a的父级”。但是编译器创建了相同名称和实现的操作,这些操作从B类型的原始操作中

我读过,派生类型与它们各自的父类型完全不同,但是它们确实继承了它们的所有父操作

换句话说,您可以将派生类型
a
传递给作为参数接收a类型
B
的操作,该类型是
a
的父级。但是,不能将
a
类型的变量分配给
B
类型的变量,反之亦然


如上所述,派生类型和子类型之间的唯一区别是赋值。是吗?

派生类型只继承它们派生的类型的基元操作


从技术上讲,类型派生创建了一组新的基本操作,因此您不能“将派生类型
a
传递给作为参数接收a type
B
的操作,后者是
a
的父级”。但是编译器创建了相同名称和实现的操作,这些操作从
B
类型的原始操作中处理
A
。例如,您可以通过显式声明继承的操作为抽象操作来删除这些操作。

派生类型仅继承它们派生的类型的基本操作


从技术上讲,类型派生创建了一组新的基本操作,因此您不能“将派生类型
a
传递给作为参数接收a type
B
的操作,后者是
a
的父级”。但是编译器创建了相同名称和实现的操作,这些操作从
B
类型的原始操作中处理
A
。例如,您可以通过显式声明继承的操作为抽象来删除这些操作。

可能的重复?可能的重复?在这种情况下,原始操作的确切含义是什么?语言参考手册第3.2.3节中的定义:据我所知,类型T的所有操作都是该类型的基本操作,对吗?如果不是,可以给我一个不被认为是基元的T类型的操作的例子吗?对不同包中声明的类型的操作。然后,主要区别(除了赋值)是T的子类型可以在所有T操作中使用,无论是否基元。那么,这就是两个区别,对吗?在这种情况下,原语操作到底是什么意思?语言参考手册第3.2.3节中的定义:据我所知,T型的所有操作都是该类型的原语操作,对吗?如果不是,可以给我一个不被认为是基元的T类型的操作的例子吗?对不同包中声明的类型的操作。然后,主要区别(除了赋值)是T的子类型可以在所有T操作中使用,无论是否基元。这就是两个区别,对吗?