永发信息网

C# 基类引用变量引用派生类对象问题?

答案:1  悬赏:0  手机版
解决时间 2021-11-12 00:27
C# 基类引用变量引用派生类对象问题?
最佳答案
变量所开辟的地址取决与使用new时的对象,例如new B()中,开辟的就是对象B的空间。

而A a = b;这样的代码,只是将对象首地址的指针又重新赋值给了变量a。(在这里,你可能错误的理解的引用对象的声明。引用类型的变量声明只是一个4字节的栈引用,这个引用标识着该引用地址的起始区间,也就是这个引用可以访问到的内存地址区间。)

但因为b所引用的是对象B所开辟的空间,所以有这样的伪代码也是成立的:

A a = new B();

B b = (B)a;

这里同理,a的引用一样访问不到子类b的name属性。但是进行强转后,b是可以访问到B的name属性的,因为这两个变量a和b都是指向类B所开辟的内存空间。
引用变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。变量可以通过变量名访问。在指令式语言中,引用变量通常是可变的;但在纯函数式语言中,变量可能是不可变的。
⒈pt 是引用变量,申明引用变量时必须将其初始化.pt 和rate 的值指向相同的内存变量. 引用的最多用处就是作为函数的参数(结构和对象).通过引用变量作参数可以是函数使用原始数据.而不是拷贝.
⒉引用的特点更接近于const 指针,一旦与某个变量关联起来就将一直效忠于它,可以通过初始化来设置此时,rate的值和 pt的值都改为了30 但是地址还是原来rate的地址.而不是other的地址.
⒊如果程序不想改变传递给它的信息,但是又想使用引用,那么则应该使用常量引用
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
公务员体检完什么时候通知啊
一般是什么引起咽喉上方发现小疙瘩,怎样进行
he保健品是假的吗
电脑里为什么找不到Ubisoft这个文件夹
如何让CodeIgniter 查询不自动添加反引号
煤炭价格多少钱一吨
lol质量王者局去哪看
黄豆芽卷心菜焖面的做法步骤图,怎么做好吃
孔垂后面加什么字好听顺口
淘宝手机寄修安全?想修部手机
头发柴是什么意思
初一年级下学期自主学习能力阶段性总结从思想
东方村地址在什么地方,想过去办事,
民事法律行为根据是否能独立存在分为什么
165除以55怎么用简便计算
推荐资讯
联想电脑地址在哪,我要去那里办事,
“我三条A没有理由不跟”这是哪部电影里的台
京顺物流配货中心地址在什么地方,我要处理点
拳皇98出招表里的“蓄”字是什么意思
润田翠和农夫山泉有什么区别?难道就我一个知
顺捷驾驶培训学校地址在什么地方,我要处理点
康通丝可以镀金银吗
一堆关于成都的问题~没耐心勿进
斯柯达明锐挂档时直接显示d1是什么意思
英语作文以last wee rend要用过去时
求冥界警局,谢谢大佬,只要链接
形容鹤的词语有哪些?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?