关键字super

1、我们可以在子类的方法或构造器中,通过使用”super.属性”或”super.方法”的方式来调用父类中声明的属性或方法,若无重名结构则通常省略”super.”。但当子类和父类中有同名的方法或属性时,则必须有”super.”,表明调用的是父类中的结构

2、我们可以在子类的构造器中显式的使用”super(形参列表)”的方式,调用父类中声明的指定构造器

3、”super(形参列表)”的使用,必须在子类构造器的首行!

4、我们在类的构造器中”this(形参列表)”和”super(形参列表)”只能二选一,不能同时出现

5、在构造器首行,没有显式的声明”this(形参列表)”和”super(形参列表)”,则默认调用的是父类中的空参构造器:super()

子类对象实例化过程:

1、从结果上看:

  1. 子类继承父类之后,就获取了父类中声明的方法或属性
  2. 创建子类的对象,在堆空间中,就会加载所有父类中声明的属性

2、从过程上看:

  1. 当我们通过子类的构造器创建子类对象时,我们一定会直接或间接的调用其父类的构造器,进而调用父类的父类的构造器……….直到调用了java.lang.object类中的空参构造器为止。真因为加载过所有的父类的结构,所有才可以看到内存中有父类中的结构,子类对象才可以考虑调用