首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

关于abstract类的一个有关问题

2011-12-29 
关于abstract类的一个问题今天学《c#入门经典》(.net2003)集合那章看到例子Ch11Ex01,有这样的疑问:我们知道a

关于abstract类的一个问题
今天学《c#入门经典》(.net2003)集合那章看到例子Ch11Ex01,有这样的疑问:
我们知道abstract类不能实例化只能继承;对于简单的数组,必须用固定的大小来初始化数组。
在Ch11Ex01中,定义了一个animal抽象类,其子类cow,chicken;在主类中又定义了
animal[]   animalArray=new   animal[2]。
现在就是这里我的思想出了问题。在这里数组要初始化,是不是数组的每个成员都是animal的一个实例?或者说,这里的数组的元素中的animal是什么样的,而animal类又不能实例化,这怎么理解?

[解决办法]
animal[] animalArray=new animal[2],你要弄清除。
要初始化一个animal,是这样的:animal a = new animal();(当然这是错误的,因为animal是抽象的);
而上面这句话并不是初始化了animal的实例,而是初始化了一个Array的实例。所以这和animal是否抽象没有关系。
animal[] animalArray=new animal[2],当然要求所有数组元素都必须是animal实例,但是什么是“animal实例”?因为animal是抽象的,那么animal实例就只有是其子类的实例。

热点排行