2 canot canot 于 2014.12.08 11:16 提问

子类强制转换为父类是不是只能转第一父类????

如题 Master 继承Wizard 。Wizard继承Solider

Master[] _pGroupA=new Master[4];
Master[] _pGroupB=new Master[4];
for(int i=0;i<2;i++){
_pGroupA[i]=(Master) new Solider();
_pGroupB[i]=(Master) new Solider();
}
_pGroupA[2]=(Master)new Wizard();
_pGroupB[2]=(Master)new Wizard();
_pGroupA[3]=new Master();
_pGroupB[3]=new Master();

        编译器提示Solider cannot be cast to Master

4个回答

chen13569775991
chen13569775991   2014.12.08 11:28
已采纳

不是,你写错了。如题 Master 继承Wizard 。Wizard继承Solider,从这句可知,maste是子类,Solider是父类。_pGroupA[i]=(Master) new Solider();而这句是父类被强制转换为子类

u014492098
u014492098   2014.12.08 11:29

你这转反了。_pGroupA[i]=(Master) new Solider();
_pGroupB[i]=(Master) new Solider();这是父类转子类了。肯定不行撒

eagleyan
eagleyan   Rxr 2014.12.08 11:36

晕,这种错误都有,这里是搞笑版么

caozhy
caozhy   Ds   Rxr 2014.12.08 15:24

中国人理所当然地可以被视作人,但是人不能简单认为都是中国人。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!