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

关于类型转换和多态
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中能够输出他们响应的对象名和名字吗?




------解决方案--------------------
前者和后者没什么差别吧。。

------解决方案--------------------
两个定义方式是一样的,只不过少写一句。后面那个是多态,能不能显示名字要看类里面的设计了,如果是私有成员,就不行了,属性就可以。