5

C++ 切片是否也适用于其他语言,例如 Java/C#?

4

1 回答 1

13

切片意味着如果将子类实例分配给超类变量,则子类包含的额外信息将被“切片”掉,因为超类变量没有额外的空间来存储子类的这些额外信息。

这在 Java 和 C# 中都不会发生,因为所有对象变量都是引用;当您将子类实例分配给超类变量时,实际上只是复制了引用;子类对象本身保持不变。

于 2009-02-11T10:42:32.580 回答