关于类型转换和多态
Animal[] animalArray = new Animal[2];
Cow myCow1 = new Cow( "Deirdre ");
animalArray[0] = myCow1;
animalArray[1] = new Chicken( "Ken ");
foreach (Animal myAnimal in animalArray)
{
Console.WriteLine( "New {0} object added to Array collection, " +
"Name = {1} ", myAnimal.ToString(), myAnimal.Name);
}
其中Animal是一个抽象类,Cow和Chicken分别是Animal的继承类。animalArray[0] = myCow1; animalArray[1] = new Chicken( "Ken ");这两行代码有什么不同,是不是前者是一个对象引用,后者是存在一个隐式的转换?在foreach中能够输出他们响应的对象名和名字吗?
------解决方案--------------------前者和后者没什么差别吧。。
能
------解决方案--------------------两个定义方式是一样的,只不过少写一句。后面那个是多态,能不能显示名字要看类里面的设计了,如果是私有成员,就不行了,属性就可以。