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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

多态在编译和运行时的状态是什么样的?
例如:   Object O = new Person();  //父类引用指向子类引用
那么在编译时期成员方法和成员变量是看父类的吗?
运行时期是不是只看子类的成员方法和成员变量?
原理是什么样的呢?

4 个回复

倒序浏览
本帖最后由 liuchenguangqnm 于 2016-4-15 22:42 编辑

编译期间用的是父类对象的指针,指向方法区中父类的对应方法,运行期间用的是子类对象的指针,指向子类的对应方法。这种指针调用的变化救称为动态绑定,也就是多态了。
回复 使用道具 举报
liuchenguangqnm 发表于 2016-4-15 22:39
编译期间用的是父类对象的指针,指向方法区中父类的对应方法,运行期间用的是子类对象的指针,指向子类的对 ...

那在编译时期和运行时期成员变量是怎么样的呢?
回复 使用道具 举报
本帖最后由 liuchenguangqnm 于 2016-4-15 22:52 编辑

编译和运行期间,成员变量除了初始化和赋值动作之外,其它地方是没有什么不同的
回复 使用道具 举报
py389172739 发表于 2016-4-15 22:41
那在编译时期和运行时期成员变量是怎么样的呢?

刚才最后的一个回复不是很严谨,又修改了一下
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马