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

关于类继承关系的一个有关问题,困扰小弟我好几天了,程序只有几行,可小弟我就是不明白,请大家帮忙

2012-03-03 
关于类继承关系的一个问题,困扰我好几天了,程序只有几行,可我就是不明白,请大家帮忙.classAnimal{}classFi

关于类继承关系的一个问题,困扰我好几天了,程序只有几行,可我就是不明白,请大家帮忙.
class   Animal
{

}
class   Fish   extends   Animal
{

}
class   Itegration
{
static   void   fn(Fish   an)
{

}
public   static   void   main(String   []args)
{
Fish   fh=new   Fish();
Animal   an=new   Animal();
Itegration.fn(fh);//此时把Fish类的实例传递过去可以.
Itegration.fn(an);//把Animal的实例传递过去就不可以了.请问为什么不可以了呢/不就是相当于
//传递个引用过去了吗?不能理解,请高手指点一二,不胜感激!
}
}

[解决办法]
你的fn(Fish n)的参数是Fish,Animal是他的父类,当然不可以
[解决办法]
改为fn(Anmail an),这时你传Fish或Anmail的引用都可以
[解决办法]
小不包大
[解决办法]
你只告诉Itegration类有 Fish类型的对象实例,并没有告诉有告诉它还有Animal类型对象的实例。
2楼所用的方法就是进行类型转换。
Itegration.fn(an) 这时候进行值引用。当Itegration对参数进行检查的时候发现这个类型(Animal)它并不知道,它只是知道Fish类型。当然就报错了。

热点排行