super使用及注意事项
1.为什么需要学习super?
能够帮助子类 初始化 父类继承下来的成员,从而简化代码
2.super的定义:
-
this代表当前对象,创建任何一个对象,都会创建一个this引用和该对象指向同一个堆区的空间,this就是一个地址
-
super代表父类存储空间的标识,super可以通过这个标识访问父类的成员,super可以理解为父类对象,
-
this可以作为参数传入到方法的形参中,super不可以
3.super和this访问成员的特点:
成员变量
-
this.成员变量
-
super.成员变量
成员方法
-
this.成员方法
-
super.成员方法
构造方法
-
this(参数列表)
-
super(参数列表)
1.为什么访问子类构造方法之前会访问父类构造方法?
– 访问父类无参构造方法导致所有的父类的静态成员和静态代码块被加载,最终根类Object类的注册方法也会被加载
2.访问子类构造方法会访问父类构造方法,那么会不会创建子类对象的同时创建父类对象?
不会 使用super/this方法构造方法就相当于调用普通方法,需要创建对象访问构造方法必须结合 new
3.任何一个构造方法第一句都会先访问父类无参构造方法
4.this super 访问构造方法必须出现第一句
5.this 和 super 访问构造方法不能同时存在
6.super可以访问父类的成员,super.父类成员
7.static上下文不能够出现 this super