java - Java/C# 中的 C++ 切片

标签 java c# c++ object-slicing

<分区>

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

最佳答案

切片的意思是,如果你将一个子类实例赋值给一个父类变量,子类包含的额外信息被“切片”掉,因为父类变量没有额外的空间来存储子类的这些额外信息。

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

关于java - Java/C# 中的 C++ 切片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/536267/

相关文章:

c++ - 如何使用带有 `--gcov-tool` 标志的 lcov?

java - Spring Boot 设置包含通过环境变量的配置文件

java - emacs jruby 配置——使用 java

java - 为什么 TextView(带有 ID)不自动保存它的状态?

c# - 为什么 System.IO.Path.Combine 有 4 个重载?

c++ - () = 类中的运算符重载

java - 升级到 react-native 版本 0.60.4 后 react-native run-android 出错

c# - 在 C# 中你可以继承多少个类?

c# - ASP.NET MVC - 如何上传图像并将 URL 保存在数据库中

c++ - 数组单元显示错误