this关键字
this.xxx
位置:在构造方法中或非静态方法中
代表的是当前对象(即哪个对象调用当前的属性或方法 this就是代替这个对象)
在构造方法中或非静态方法(实例级别的方法)中this.默认可以省略,当局部变量和全局变量(属性)同名时,如果想要代表全局变量,this不能省略
this(xxx)
位置:只能在构造方法中,且只能在第一行出现
代表:调用当前类的构造方法(构造方法调用构造方法)
super(在子类中)
super.xxx
位置:在子构造方法中或非静态方法中
代表的是父类对象(调用者对象的父对象)
代表调用父的属性或者方法(不能省略)
super()
位置:只能在子构造方法中,且只能出现第一行(super()和this()不能同时使用)
特殊:默认构造方法的第一行省略super() 即子类的构造方法默认调用父类的无参构造
代表:调用父类的构造方法
super 和 this 的比较
区别 | this | super | |
1 | 访问属性 | 访问本类中的属性,如果本类没有此属性则从父类中继续查找 | 从父类开始查找属性 |
2 | 调用方法 | 访问本类中的方法,如果本类中没有此方法则从父类继续查找 | 从父类开始查找方法 |
3 | 调用构造器 | 调用本类构造器,必须放在构造器的首行 | 调用父类构造器,必须放在子类构造的首行 |
4 | 特殊 | 表示当前对象 | 子类中访问父类对象 |