黑马程序员技术交流社区

标题: 关键字super什么时候是必须用的? [打印本页]

作者: wmc1994    时间: 2016-8-7 17:07
标题: 关键字super什么时候是必须用的?
在学面向对象里的关键字super在构造函数里的用法,什么时候是必须用,什么时候不是必须的不是很了解,总之我都用不知道这个习惯好不好?
作者: accomplonely    时间: 2016-8-7 22:01
只有你继承创建对象了,都要访问父类的一个构造方法,不管什么构造方法都需要访问一次,所以肯定会用到super,
作者: wmc1994    时间: 2016-8-7 22:30
构造一个无参的构造方法应该可有可无吧
作者: life写实    时间: 2016-8-7 22:37
子父类之间系统会默认给出super();不管你用不用,JVM都为你提供了,因为子类继承了父类的所有非私有成员(构造方法除外),使用他们之前必须通过super调父类构造对父类初始化。还有一种情况,就是父类只有带参构造,这个时候子类必须有一个构造方法给出super(带参);去调用父类带参构造才能new对象。
作者: x55555lg    时间: 2016-8-7 23:15
子类对象初始化需要访问父类的构造函数时用
作者: x55555lg    时间: 2016-8-8 22:37
父类的成员属性都被私有化,子类又需要的话就要用super来调用对应的父类的构造方法
作者: 夜行御史    时间: 2016-8-8 22:47
super关键字:  父类对象的引用
使用场景:    在子类构造方法中或者普通方法中使用,一般子类构造方法中使用较多。
格式:调用父类构造   super(参数);
          调用父类普通方法  super.方法名(参数值 )   (仅在子父类方法重名时)   
       调父类成员变量   super.变量名
作者: wmc1994    时间: 2016-8-8 22:50
夜行御史 发表于 2016-8-8 22:47
super关键字:  父类对象的引用
使用场景:    在子类构造方法中或者普通方法中使用,一般子类构造方法中使 ...

你这太书面了。
作者: wmc1994    时间: 2016-8-8 22:51
x55555lg 发表于 2016-8-8 22:37
父类的成员属性都被私有化,子类又需要的话就要用super来调用对应的父类的构造方法 ...

大致懂了,谢谢了
作者: gonghe    时间: 2016-8-8 23:15
过来看评论的,




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