一、回顾this

this能出现在实例方法中和构造方法中
this的语法是:this. 、this()
this不能使用在静态方法中
this.大部分情况下可以省略的,在区分局部变量和实例变量的时候不能省略

public void setName(String name){
	this.name = name;
}

this() 只能出现在构造方法的第一行,通过当前的构造方法去调用“本类”中其他的构造方法,目的是:代码复用

二、super对比this

  1. super能出现在实例方法中和构造方法中
  2. super的语法是:super.属性 【访问父类属性】、super(实参)【访问父类构造方法】、super.方法名(实参)【访问父类的方法】
  3. super不能使用在静态方法中
  4. super.大部分情况下可以省略的
    如果父类和子类有同名属性,并且想要通过子类访问父类属性,则不能省略
  5. super() 只能出现在构造方法的第一行,通过当前的构造方法去调用“父类”中其他的构造方法,目的是:创建子类对象的时候,先初始化父类特征。
  6. 通过子类构造方法先调用父类的构造方法来模拟现实世界中:要想有儿子,必须先有父亲
  7. 重要结论:
    当一个构造方法第一行既没有this(),又没有super()的时候,默认会有一个super();表示通过当前子类的构造方法调用父类的无参数构造方法。所以必须保证父类的无参数构造方法是存在的
  8. this()和super()不能共存的
  9. 无论怎样,父类的构造方法都会先执行

    在构造方法执行过程中一连串调用了父类的构造方法,父类的构造方法又继续向下调用它的父类构造方法,但实际上对象只创建了一个

三、super可以用来干嘛

1.super(实参)用来初始化当前对象的父类型特征。并不是创建对象,实际上对象只创建了一个。创建对象的时候父类的特征已经继承过来,已经属于对象本身
2.super关键字代表的就是“当前对象”某些父类型特征,是this指向对象中的一部分