为什么基类能兼容子类 我的意思是在内存中的储存,按照以前的理解,只有大的类型能够兼容小的类型,那为什么子类拓展了基类,还能被基类兼容呢? 是因为 放在堆中 只要应用的原因吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 简要答案:原因取决于对象的内存分配,个clr的管控,对象在内存中有一个**p,指向一个type方法表,type方法表维护一些对象的元数据,对象转换实际上只是修改了**P的指向,让他指向到另一个type方法表上,而这两个type表实际上是有包含关系的详细信息参阅:http://book.csdn.net/bookfiles/684/10068421441.shtml 比如你定义了A类、B类,B类从A类继承,现在有代码A a=new B();请问你a是A类的吗?说“是”并没有错。但是a既是A类也是B类,也就是说使用B b=(B)a;也没有错。说白了,a真正指向一个实例化为B的实例,只不过a这个对象引用声明为A类而已。你还以为a“在内存中”只是一个A类对象实例吗? 但是a既是A类也是B类 -> 但是a既是A类实例也是B类实例关键地,要看变量所引用的对象实例到底是什么类型,而不是仅仅看这个变量声明为什么类型。 结构优化的一个问题 弱弱地问一个问题:将不定的字符串添加到listView中 数据层的方法应该返回dataset还是实体类? C#数据绑定问题--数据列是不是可以绑定类似PB的DDDW 后台alert的问题 有谁会在.Net下对MicroStation进行二次开发吗?给资料也行。 不希望看到有不会而想赚分数的人来顶。 如何全屏显示....... 字符串分割查询!急 winf下datagridview绑定单表及增删改保存问题 想在程序中实现想QQ那样,换皮肤功能,请问如何实现? 关于XML的操作,求高手帮忙 寻找最匹配的目录
请问你a是A类的吗?说“是”并没有错。但是a既是A类也是B类,也就是说使用B b=(B)a;也没有错。说白了,a真正指向一个实例化为B的实例,只不过a这个对象引用声明为A类而已。你还以为a“在内存中”只是一个A类对象实例吗?