1. super和this的区别
super:父类对象引用,super()调用父类对象构造器,super.*访问父类对象属性
this:当前对象引用,this()调用当前对象其他构造器,this.*访问当前对象属性
2. 问题:this()和super()不能同时出现
构造函数中默认调用super(),this()调用当前对象其他构造函数,而其他构造函数同样默认调用super(),如果同时写了this()和super(),那么实例化一个对象运行两次super(),可能一个方法或者属性初始化两次,这是不安全的
3. 问题:this()和super()必须放在构造器第一行
java中不允许调用没有初始化的成员,而如果在this()前面已经使用了成员变量,那么就会出现异常,同理super()调用父类构造器,而父类构造器中可以访问子类的方法,如果此时子类的方法使用了成员变量,同样会出现问题
时间: 2024-10-14 21:54:58