我读到派生类型与它们各自的父类型完全不同,但是它们继承了它们所有父级的操作。
换句话说,可以将派生类型A
传递给操作,该操作接收作为参数的A
父级的类型B
。但是,不能将类型A
的变量分配给类型B
的变量,反之亦然。
根据上述内容,派生类型和子类型之间的唯一区别是赋值。是吗?
派生类型仅继承派生它们的类型的基元操作。
从技术上讲,类型派生创建了一组新的基元操作,因此您不能"将派生类型A
传递给作为参数接收A
父级的类型B
的操作"。 但是编译器会创建相同名称和实现的操作,这些操作从类型B
的基元操作处理类型A
。 例如,您可以通过显式声明继承的操作抽象来删除继承的操作。