0

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

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

根据上述,派生类型和子类型之间的唯一区别是赋值。那正确吗?

4

1 回答 1

4

派生类型仅继承派生它们的类型的原始操作

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

于 2018-06-21T13:27:39.310 回答