社区
Java SE
帖子详情
Object类与多态的疑问
boxnoodle
2007-12-14 10:34:11
假如Animal是Dog的父类
Animal animal=new Dog();
animal.eat();//多态,调用的是Dog的eat()
而
Object o=new Dog();
o.eat();//错误,object类没有eat方法
Object类此时为什么不能像Animal一样多态?直观上理解不了,硬记?
有谁解释下他们的区别吗?
...全文
197
10
打赏
收藏
Object类与多态的疑问
假如Animal是Dog的父类 Animal animal=new Dog(); animal.eat();//多态,调用的是Dog的eat() 而 Object o=new Dog(); o.eat();//错误,object类没有eat方法 Object类此时为什么不能像Animal一样多态?直观上理解不了,硬记? 有谁解释下他们的区别吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
guoyueshan
2007-12-20
打赏
举报
回复
Object o=new Dog();
((Dog)o).eat();
Object o=new Dog();
Dog d=(Dog)o;//错误?为什么不能直接赋给他?
boxnoodle
2007-12-20
打赏
举报
回复
Object o=new Dog();
Dog d=o;//错误?为什么不能直接赋给他?
yakubeni
2007-12-20
打赏
举报
回复
没看清楚,瞎写了一下。哈哈。不好意思
yakubeni
2007-12-20
打赏
举报
回复
可以把子类强制转化成父类,但反过来不行。
编译器会认为缺少信息,尽管实际上不缺少。。。。
xiyuan1999
2007-12-15
打赏
举报
回复
object类没有eat方法
yjkun
2007-12-15
打赏
举报
回复
继承,重写,父类引用指向子类对象是多态的三个要素,object中没有eat()方法
wann916
2007-12-14
打赏
举报
回复
多态的三个条件:
1.有继承,extends..
2.有重写,子类要重写父类的方法..
3.要有父类引用指向子类对象..
你上面的例子中Animal类中肯定有eat()吧;Object类根本就没有eat(),Dog类中的eat()就不能重写Object类的eat(),所以错误.
JhunHoonXZ
2007-12-14
打赏
举报
回复
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()方法
然后试试可不可行,就知道了
zazxzx
2007-12-14
打赏
举报
回复
Object类没有eat()方法,而Animal类中有eat()方法
多态满足的条件简单的说就是
继承,重写方法,上溯造型
C#中CLR虚方法的
多态
调用
C#中CLR虚方法的
多态
调用C#中CLR虚方法的
多态
调用C#中CLR虚方法的
多态
调用C#中CLR虚方法的
多态
调用C#中CLR虚方法的
多态
调用
C#
多态
实现计算器有BUG,求解决!
NULL 博文链接:https://527436298.iteye.com/blog/2323592
object
_directional_c
object
_directional_c
c++基础课件第一讲
教你从零基础开始学习c++,掌握基本的编程语言,能够更好地编写程序,理解程序
JAVA面试题解惑系列
JAVA面试题解惑系列
Java SE
62,623
社区成员
307,257
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章