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

Object类与多态的疑问,该如何解决

2012-01-23 
Object类与多态的疑问假如Animal是Dog的父类Animal animalnew Dog()animal.eat()//多态,调用的是Dog的e

Object类与多态的疑问
假如Animal是Dog的父类
Animal animal=new Dog();
animal.eat();//多态,调用的是Dog的eat()


Object o=new Dog();
o.eat();//错误,object类没有eat方法

Object类此时为什么不能像Animal一样多态?直观上理解不了,硬记?
有谁解释下他们的区别吗?

[解决办法]
Animal animal=new Dog(); 
animal.eat();//多态,调用的是Dog的eat() 
首先,Animal必须有eat()
然后Dog覆盖Animal的eat()
这样,你才可以如上面调用eat()


Object o=new Dog(); 
o.eat();//错误,object类没有eat方法 
Object并没有eat()
所以错误

你可以试一下在Dog里写一个toString()或者equlas()方法
然后试试可不可行,就知道了
[解决办法]
多态的三个条件:
1.有继承,extends..
2.有重写,子类要重写父类的方法..
3.要有父类引用指向子类对象..


你上面的例子中Animal类中肯定有eat()吧;Object类根本就没有eat(),Dog类中的eat()就不能重写Object类的eat(),所以错误.

热点排行