- this 与 super
区别 | this | super |
---|---|---|
概念 | 访问本类中的属性和方法 | 由子类访问父类中的属性和方法 |
查找范围 | 先查找本类,本类没有就调用父类 | 不查找本类而直接调用父类 |
特殊 | 表示当前对象 | 无 |
this:
-
表示当前对象的引用。
public Animal(String name) { this.name = name; }
-
this();
可用于调用当前对象的构造方法,且必须放在构造函数内的第一行。
super:子类代码中由于使用了重写机制, 调用到的都是子类的方法. 但如果需要在子类内部调用父类方法,我们可以使用 super 关键字.super 表示获取到父类实例的引用。
super 的俩种常见用法:
- 调用父类构造方法
‘public Bird(String name) {
super(name);
}
- 调用父类普通方法
super.eat(food);