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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

在学面向对象里的关键字super在构造函数里的用法,什么时候是必须用,什么时候不是必须的不是很了解,总之我都用不知道这个习惯好不好?

9 个回复

倒序浏览
只有你继承创建对象了,都要访问父类的一个构造方法,不管什么构造方法都需要访问一次,所以肯定会用到super,
回复 使用道具 举报
构造一个无参的构造方法应该可有可无吧
回复 使用道具 举报
子父类之间系统会默认给出super();不管你用不用,JVM都为你提供了,因为子类继承了父类的所有非私有成员(构造方法除外),使用他们之前必须通过super调父类构造对父类初始化。还有一种情况,就是父类只有带参构造,这个时候子类必须有一个构造方法给出super(带参);去调用父类带参构造才能new对象。
回复 使用道具 举报
子类对象初始化需要访问父类的构造函数时用
回复 使用道具 举报
父类的成员属性都被私有化,子类又需要的话就要用super来调用对应的父类的构造方法
回复 使用道具 举报
super关键字:  父类对象的引用
使用场景:    在子类构造方法中或者普通方法中使用,一般子类构造方法中使用较多。
格式:调用父类构造   super(参数);
          调用父类普通方法  super.方法名(参数值 )   (仅在子父类方法重名时)   
       调父类成员变量   super.变量名
回复 使用道具 举报
夜行御史 发表于 2016-8-8 22:47
super关键字:  父类对象的引用
使用场景:    在子类构造方法中或者普通方法中使用,一般子类构造方法中使 ...

你这太书面了。
回复 使用道具 举报
x55555lg 发表于 2016-8-8 22:37
父类的成员属性都被私有化,子类又需要的话就要用super来调用对应的父类的构造方法 ...

大致懂了,谢谢了
回复 使用道具 举报
过来看评论的,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马