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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© mingjing56 中级黑马   /  2015-4-13 00:47  /  594 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

多态的情况下,父类的引用指向子类对象时,会访问父类的构造函数,那会访问子类的构造函数吗?

评分

参与人数 1黑马币 +10 收起 理由
帆风顺 + 10 赞一个!

查看全部评分

3 个回复

倒序浏览
访问子类的。多态的意思估计你没懂。我给你举个例子。我们都属于人类这个大类。人类这个类有名字,年龄这些属性,吃饭睡觉这些方法。人类有一个子类,学生,学生不仅有名字,年龄这些属性,吃饭睡觉这些方法,还有学号这个属性,上课这个方法。当我们把一个学生当作学生类看的时候,他有学号,还要上课。当我们把他当作人类来看的时候,就看不到这些了。因为学号,上课是学生特有的。父类引用指向子类对象在这里的意思是,你用学生类构造一个学生,但是我把你当作人来看,虽然你有学号,上课。我不关心。我只关心你作为一个人有的东西。所以,当父类引用指向子类对象的时候,虽然他还是 子类,但是我们只能看到他属于父类的属相和方法而看不到子类独有的属相和方法。
回复 使用道具 举报 1 0
会访问父类的构造函数?会吗,不是new的是子类对象么
回复 使用道具 举报
对啊,new 类名();这句就创建了一个匿名的子类对象,再加上句柄,也就是父类的引用,就是所谓的父类应用指向之类对象;你试着想一想,同样都是类,把子类的一个对象指向了父类,那就是要这个对象去了解和使用父类的一些东西,当然可以访问父类的构造方法,但属于他自己的构造方法自己当然也会访问,知识在此时被父类这个引用给限制了,仅此而已。相信你能明白!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马