黑马程序员技术交流社区

标题: 提问:多态在编译和运行时的状态是什么样的? [打印本页]

作者: py389172739    时间: 2016-4-15 22:30
标题: 提问:多态在编译和运行时的状态是什么样的?
多态在编译和运行时的状态是什么样的?
例如:   Object O = new Person();  //父类引用指向子类引用
那么在编译时期成员方法和成员变量是看父类的吗?
运行时期是不是只看子类的成员方法和成员变量?
原理是什么样的呢?


作者: liuchenguangqnm    时间: 2016-4-15 22:39
本帖最后由 liuchenguangqnm 于 2016-4-15 22:42 编辑

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

那在编译时期和运行时期成员变量是怎么样的呢?
作者: liuchenguangqnm    时间: 2016-4-15 22:44
本帖最后由 liuchenguangqnm 于 2016-4-15 22:52 编辑

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

刚才最后的一个回复不是很严谨,又修改了一下




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2