this

this与supper区别

为什么super()和this()调用语句不能同时在一个构造函数中出现的解释

因为在构造的时候只需要调用父类的super()作为初始化父类一次,如果super(...)和this(...)同时出现的话,那么就会出现初始化父类两次的不安全操作,因为当super(...)和this(...)同时出现的时候,在调用完了super(..)之后还会执行this(..),而this(...)中又会自动调用super(),这就造成了调用两次super()的结果(这是假设super(...)和this(...)同时出现时候,super(...)在this(...)前面,反过来出现也一样)

如果一个类继承了其他类,那么在初始化的时候,super默认先调用父类的无参构造,或者super调用有参构造,然后再完成子类特有的属性的初始化。而在构造函数中,this调用的是其他构造函数,而其他构造函数中也有super存在,这样就存在两个super,意味着父类的两次初始化,这不安全。