java中this和super的用法及区别
this
-
用法1:代表当前对象本身
-
用法2:方法形参和类成员变量重名,用this进行区别
class demo{
private int age = 10;
public int getAge(int age){
this.age = age;
return this.age;
}
}
- 用法3:引用构造函数
这个和 super 放在一起讲,见下面。
super
- 用法1:引用父类成员变量
可用 super.xxx 来引用父类的成员
- 用法2:子类调用父类方法或变量
调用变量前需要先引用 父类方法:
class father{
String name;
void eat(){
name = "666";
}
}
class son extends father{
super.eat();
System.Out.println(super.name);
}
不调用方法只调用变量的话,变量值为null
this、super引用构造函数
必须写在构造函数的第一条
无参数时,表示调用构造函数
有参数时,表示调用具有相同参数的构造函数
super():引用父类无参构造函数
super(参数1,参数2):引用父类相同形参的构造函数
this():引用本类无参构造方法
this(参数1,参数2):引用本类具有相同形参的构造方法