A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

顾魁

初级黑马

  • 黑马币:0

  • 帖子:14

  • 精华:0

© 顾魁 初级黑马   /  2012-8-22 13:46  /  1601 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class fu
zi=10

class Car  extends fu

color=red
num=4
不考虑格式啊 我就是说这个意思
现在我创建一个Car的对象 是下面这个图





现在如果我 fu a=new Car()来一个多态



这个里面会是什么样子的呢???

评分

参与人数 1技术分 +1 收起 理由
张_涛 + 1 新人发帖,赞一个!

查看全部评分

3 个回复

倒序浏览
一句话:子类持有父类的引用
子类有的,用子类的,子类没有的,去看看父类有没有。
回复 使用道具 举报
多态就是父类引用指向子类对象。既然是子类对象,那么对象中就必然既包含子类自己的数据,又继承了父类的数据,因此会有父子两类的数据。
但在代码中,如果用父类引用去调用子类中特有的方法,在编译时会找不到该方法,编译无法通过。因为在编译时,编译器只知道该引用是父类的引用,只有父类中的方法可以被调用。如果子类中覆盖了父类中的方法,在方法调用时,编译可以通过,因为父类中有同名的方法。而运行时是运行子类中的方法代码的。
总结如下:
多态调用方法,编译时看引用的左边父类类型,运行时看右边子类的方法。
多态调用变量时,编译和运行都是看左边类型。
回复 使用道具 举报
梁志仲 发表于 2012-8-22 16:38
多态就是父类引用指向子类对象。既然是子类对象,那么对象中就必然既包含子类自己的数据,又继承了父类的数 ...

已解决   谢谢了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马