- this、super是什么?
this是本类对象的引用
super是父类对象的引用
- this、super可以做什么?
this可以调本类的构造方法、成员属性、成员方法
super可以调父类的构造方法、成员属性、成员方法
举例子
- 父类子类实例化
测试demo
public static void main(String[] args) {
Subclass sub=new Subclass();
}
输出:
父类无参构造
子类无参构造
原因:
子类初始化之前,先完成父类数据的初始化,原因在于,每一个子类构造方法的第一条语句默认都是:super() , super()调用了父类的无参构造
- 调用构造,成员变量,成员方法
测试demo
public static void main(String[] args) {
Subclass sub=new Subclass(12);
}
输出:
父类有参构造 湖北
父类无参构造
长沙
臭豆腐
父类成员变量-湖北–子类成员变量 名字-中国子类成员变量 年龄3000
子类有参构造
原因:
小伙伴们可以自己先想想 ,思考点t从 his与super是什么?可以做什么?
点击查看答案
- this与super的区别
1.属性/成员变量的区别
1).this访问本类中的属性,如果本类没有这个属性就访问父类中的属性
2).super访问父类中的属性
2.成员方法的区别
1).this访问本类中的方法,如果本类没有这个属性就访问父类中的方法
2).super访问父类中的方法
3.构造方法的区别
1).this(…)–访问本类构造方法
2).super(…)–访问父类构造方法
注意:
1.子类初始化之前,一定要先完成父类数据的初始化,原因在于,每一个子类构造方法的第一条语句默认都是:super()
2.this() 和super()都只能写在构造函数的第一行,但是这两个不能存在于同一个构造函数中