黑马程序员技术交流社区

标题: 多态 [打印本页]

作者: yin1031468524    时间: 2013-5-29 23:40
标题: 多态
本帖最后由 yin1031468524 于 2013-5-30 10:26 编辑

在java中,当父类和子类都定义了同一个属性时,在父类中是否可用父类对象调用子类的属性?
作者: 刘勇强    时间: 2013-5-29 23:45
当然不行啊

比如你定义一个Person类  只有name属性,然后你定义一个子类Student,加了一个年龄属性age.

然后 new一个Person对象 p, 你用p.age来访问子类的属性肯定不行  因为父类Person中根本没这个属性啊  子类继承父类是一种扩展.



作者: 悟佛修道    时间: 2013-5-29 23:50
不行的,多态中,成员变量无论编译还是运行都是看左边,也就是你创建什么对象就只能调用自己的成员变量。
作者: First    时间: 2013-5-29 23:56
如果你创建的是一个父类的对象,那是 不能 调用子类的属性的,因为在父类对象中压根就没有子类的东西。
但是如果你创建的是一个子类的对象,那么在这个对象中会先初始化它的父类的对象,所以子类中是可以调用父类的属性的。
作者: 小石头39910    时间: 2013-5-30 07:42
多态是对父类的一种扩展,只能是父类引用调用子类对象,子类的属性是子类特有的,父类不具备这些属性,怎么会调用子类的属性呢。
作者: 归☆夜↑『    时间: 2013-5-30 09:13
多态的三个基本条件:有继承、有方法重写、有父类引用指向子类对象。所以多态只体现在方法调用中,对象的属性不具备多态性。




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