this和super关键字的区别和用法
this关键字的三种用法:
-
this可以访问本类的成员变量:
this.成员变量
一般用来区分同名的成员变量和局部变量 -
this可以访问本类的成员方法:
this.成员方法名(实参)
空参构造: this();
-
this可以访问本类的构造方法:
空参构造: this();
有参构造: this(实参);注意: 1.只能在本类的构造方法中使用this调用其他构造方法 2.在本类的构造方法中使用this调用其他构造方法,必须放在该构造方法的第一行,否则会报错 3.两个构造方法不能使用this同时相互调用
super关键字的三种用法:
-
super可以访问父类的成员变量:
super.成员变量
一般用来区分父子类中同名的成员变量
-
super可以访问父类的成员方法:
super.成员方法(实参)
一般用来在子类中访问父类的成员方法
super可以访问父类的构造方法:
空参构造: super();
有参构造: super(实参);注意: 1.子类的构造方法默认会调用父类的空参构造方法 , 如果父类中没有空参构造方法 , 只定义了有参构造方法 , 会编译报错 2.在子类的构造方法中,使用super调用父类的构造方法,必须放在子类构造方法的第一行 3.使用super调用父类的构造方法,其实主要的目的就是初始化从父类继承过来的属性 4.super访问成员变量和成员方法 : 优先去父类中找 , 如果有就直接使用 , 如果没有就去爷爷类中找 , 如果有 , 就用 , 依次类推......