日期:2014-05-18  浏览次数:20989 次

第一次提问 帮忙哈
C#中,Con 是类;
Con[][] cons = new Con[2][];
B:Con;
cons[0][0] = new B();
我的问题是 cons是基类声明的 怎么由派生类new呢

感激涕零哈.


------解决方案--------------------
这是面向对象中的多态,可以把基类的引用指向派生类的实例. 但这时基类的对象只能访问基类中的成员不能访问派生类中的成员.
如:C#中的类都继承自System.Object, 所以所有的类实例都能赋给一个object变量.

------解决方案--------------------
我的问题是 cons是基类声明的 怎么由派生类new呢 
==
声明了一个基类的引用,但指向一个派生类的对象

因为任何一个派生类的对象都可以看做是一个基类的对象

比如

人 a = new 男人();

肯定正确

因为任何一个男人都是人