JAVA中是否可以只声明一个父类对象便用一个已经new过的子类对象向其赋值?

[复制链接]
查看11 | 回复4 | 2011-8-19 07:20:31 | 显示全部楼层 |阅读模式
如:省略父类Animal及子类Fish,主类Zoo(){staticvoidfn(Animalan){an.eat();}publicstaticvoidmain(String[]args){Fishfh=newFish();Animalan;an=fh;Zoo.fh;}
回复

使用道具 举报

千问 | 2011-8-19 07:20:31 | 显示全部楼层
这个叫做向上转型....所有将父类的引用指向子类的对象都是....但是这样你父类指向的引用就只能使用父类的方法...假如说....你的子类有新的方法.....通过向上转型..你的父类也不能使用这些新方法
回复

使用道具 举报

千问 | 2011-8-19 07:20:31 | 显示全部楼层
编译不过去
回复

使用道具 举报

千问 | 2011-8-19 07:20:31 | 显示全部楼层
当然可以了,这就是多态啊,不过向下转型的时候要注意,而且父类的设计要很合理才能体现多态的优越性
回复

使用道具 举报

千问 | 2011-8-19 07:20:31 | 显示全部楼层
这个叫做向上转型....所有将父类的引用指向子类的对象都是....但是这样你父类指向的引用就只能使用父类的方法...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行