c# – 你何时以及为什么要翻转一个物体?

c# – 你何时以及为什么要翻转一个物体?,第1张

概述这被认为是预测正确吗? Derived d = new Derived();Base b = d; // Always OK. 为什么会有人上传?什么时候?是因为我们必须将对象转换为基类,因此它没有派生类的功能吗? 这段代码在内存中是如何看的?派生类实例化并为该对象创建内存.然后创建一个引用d的基类对象. 我想你可能会对上传的内容感到有些困惑. upcast不会禁用派生对象的功能,也不会创建新的 @H_301_0@这被认为是预测正确吗?
Derived d = new Derived();Base b = d; // Always OK.

为什么会有人上传?什么时候?是因为我们必须将对象转换为基类,因此它没有派生类的功能吗?

这段代码在内存中是如何看的?派生类实例化并为该对象创建内存.然后创建一个引用d的基类对象.

解决方法 我想你可能会对上传的内容感到有些困惑. upcast不会禁用派生对象的功能,也不会创建新的Base对象.相反,它只是对您所提升的对象进行更有限的视图.通过基类引用,您只能访问在Base中声明的那些方法,但如果在派生类中重写了这些方法中的任何一个,则通过基类引用调用它们仍将调用派生版本.

至于你什么时候想做这件事,看到人们因为没有特别的原因而被人上调是不常见的.毕竟,这限制了你可以对对象做的事情.但是,正如其他海报所指出的那样,在将对象传递给函数或从函数返回对象时隐式向上转换是很常见的.在这些情况下,upcast允许函数作者接受具有完成工作所需的最弱要求集的参数,或者从表现出某些行为的函数返回对象而不必显示完整类型的宾语.

总结

以上是内存溢出为你收集整理的c# – 你何时以及为什么要翻转一个物体?全部内容,希望文章能够帮你解决c# – 你何时以及为什么要翻转一个物体?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1240832.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存