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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yin1031468524 中级黑马   /  2013-5-29 23:40  /  1794 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 yin1031468524 于 2013-5-30 10:26 编辑

在java中,当父类和子类都定义了同一个属性时,在父类中是否可用父类对象调用子类的属性?

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

5 个回复

倒序浏览
当然不行啊

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

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


评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
不行的,多态中,成员变量无论编译还是运行都是看左边,也就是你创建什么对象就只能调用自己的成员变量。
回复 使用道具 举报
如果你创建的是一个父类的对象,那是 不能 调用子类的属性的,因为在父类对象中压根就没有子类的东西。
但是如果你创建的是一个子类的对象,那么在这个对象中会先初始化它的父类的对象,所以子类中是可以调用父类的属性的。

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
多态是对父类的一种扩展,只能是父类引用调用子类对象,子类的属性是子类特有的,父类不具备这些属性,怎么会调用子类的属性呢。

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 赞一个!

查看全部评分

回复 使用道具 举报
多态的三个基本条件:有继承、有方法重写、有父类引用指向子类对象。所以多态只体现在方法调用中,对象的属性不具备多态性。

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 赞一个!

查看全部评分

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