Java_this和super
this和super的用法
-
this关键字:
this关键字只能在方法内部使用,表示对调用方法的那个对象的引用-
1-调用成员变量
this.name = name -
2-调用构造方法
public Student(){ this(String name,int age); } public Student(String name,int age){ this.name = name; this.age = age; System.out.println(name+" "+age); }通过一个无参构造器来调用另一个有参构造器
new Studentt(){ this("默尔索",50); }注:
this来调用构造方法,只能将其放在构造函数的第一行 -
3-调用普通方法:
this代指当前对象,用来调用当前类的普通方法 -
4-返回当前对象
public class ThisTest{ public Object newObject(){ return this; } }
-
-
Super关键字
Super关键字表示对父类对象的引用-
1-调用父类的构造方法
子类默认通过
super()调用父类的无参构造方法 -
2-调用父类的成员属性:
super.name -
3-d调用父类的方法:
super.method() -
4-
super()和this()需出现在构造方法的第一行,且不能同时出现
-
-
this和super异同小结super():调用基类中的某一个构造函数(应位于构造函数中的第一条语句)this():调用本类中另一种形式的构造函数(应位于构造函数的第一条语句)super:引用当前对象的直接父类中的成员this:代表当前对象名- 调用
super()必须写在子类构造方法的第一行,每个子类构造方法都隐含地调用super() super()从子类中调用父类的构造方法,this()在同一类内调用其他方法this()super()均需放在构造方法的第一行this()可以调用一个构造器,却不能调用两个this()和super()不能同时出现在一个构造函数里this()和super()都是代指对象,所以均不可以在static环境中使用(包括static变量、static方法、static语句块)- 从本质上讲,
this是一个指向对象的指针,而super是一个关键字