| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 399 人关注过本帖
标题:初始化方法的不同
只看楼主 加入收藏
淹不死的鱼
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2011-8-11
结帖率:100%
收藏
已结贴  问题点数:6 回复次数:2 
初始化方法的不同
Cow类和Chicken类都继承自Animal类
 Animal[] animalArray = new Animal[2];
 Cow myCow1 = new Cow("Deirdre");
 animalArray[0] = myCow1;
 animalArray[1] = new Chicken("Ken");

animalArray[0].Feed();
((Chicken)animalArray[1]).LayEgg();  
myCow1对象可以直接访问(animalArray[0].Feed();)它的Feed()方法,Chicken对象必须经过类型转换(((Chicken)animalArray[1]).LayEgg();)才能访问它的LayEgg()方法,我知道这是由初始化不同引起的,请问真两种初始化方法有什么不同:
 Cow myCow1 = new Cow("Deirdre");
 animalArray[0] = myCow1;
animalArray[1] = new Chicken("Ken");

           
搜索更多相关主题的帖子: 继承 
2011-08-21 20:19
athenalux
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:河北石家庄
等 级:小飞侠
威 望:8
帖 子:975
专家分:2514
注 册:2008-11-26
收藏
得分:4 
应该没什么不同吧,
Cow myCow1 = new Cow("Deirdre");
animalArray[0] = myCow1;
不就相当于animalArray[0]= new Cow("Deirdre");吗

QQ:81704464
2011-08-22 21:13
淹不死的鱼
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2011-8-11
收藏
得分:0 
有不同啊
如果用Cow myCow1 = new Cow("Deirdre");初始化,就可以不用类型转换来访问Feed()方法,如:animalArra[0].Feed();
若用animalArray[1] = new Chicken("Ken");初始化,就必须经过强制类型转化才能访问LayEgg()方法,如:
((Chicken)animalArray[1]).LayEgg();
这是《C#入门经典》上的一个问题,我编译试过了,结果确实不同,但就是不明白两种初始化方法本质有什么不同。
2011-08-23 09:26
快速回复:初始化方法的不同
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016728 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved