黑马程序员技术交流社区

标题: 多态问题 [打印本页]

作者: mingjing56    时间: 2015-4-13 00:47
标题: 多态问题
多态的情况下,父类的引用指向子类对象时,会访问父类的构造函数,那会访问子类的构造函数吗?
作者: xlunaer    时间: 2015-4-13 09:29
访问子类的。多态的意思估计你没懂。我给你举个例子。我们都属于人类这个大类。人类这个类有名字,年龄这些属性,吃饭睡觉这些方法。人类有一个子类,学生,学生不仅有名字,年龄这些属性,吃饭睡觉这些方法,还有学号这个属性,上课这个方法。当我们把一个学生当作学生类看的时候,他有学号,还要上课。当我们把他当作人类来看的时候,就看不到这些了。因为学号,上课是学生特有的。父类引用指向子类对象在这里的意思是,你用学生类构造一个学生,但是我把你当作人来看,虽然你有学号,上课。我不关心。我只关心你作为一个人有的东西。所以,当父类引用指向子类对象的时候,虽然他还是 子类,但是我们只能看到他属于父类的属相和方法而看不到子类独有的属相和方法。
作者: mah707    时间: 2015-4-13 12:00
会访问父类的构造函数?会吗,不是new的是子类对象么
作者: 静心明德    时间: 2015-4-13 12:10
对啊,new 类名();这句就创建了一个匿名的子类对象,再加上句柄,也就是父类的引用,就是所谓的父类应用指向之类对象;你试着想一想,同样都是类,把子类的一个对象指向了父类,那就是要这个对象去了解和使用父类的一些东西,当然可以访问父类的构造方法,但属于他自己的构造方法自己当然也会访问,知识在此时被父类这个引用给限制了,仅此而已。相信你能明白!




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