在java中this和super的使用
this的使用
1.this使用在本身的调用类中,可以调用本类的构造方法、方法和属性。
2. 当使用this来调用本类的构造方法时,this只能放在构造方法的第一句。
super的使用
1.super调用的是父类的构造方法,必须在子类构造方法的第一行,如果子类没写,默认调用父类无参构造,即第一行:super();
2.super只能用在子类的方法或者构造方法中。
3.当super和this调用构造方法时都需要放在构造方法的第一行,所以不能同时使用。
this和super的区别
1.this代表本身调用者对象,super代表本身调用者的父类对象
2.this可以直接在本身对象中使用,super只能在发生调用时在本身对象即子类对象中使用。
3.this()代表的本类无参构造,super()代表的是父类无参构造。
如:
public class Person {//父类
String name = "yyq";//属性
public Person() {//无参构造
System.out.println("调用Person的无参构造器");
}
public void print(){//普通方法
System.out.println("Person");
}
}
public class Student extends Person {//子类继承上面的父类
String name = "fool";//属性
public Student() {//无参构造 这里虽然没写super()但是相当于在第一行写了super()
//super();
System.out.println("调用Student的无参构造器");
}
public void print(){
System.out.println("Student");
}
public void test2(){//测试普通方法的方法
print();
this.print(); //调用本类的print()
super.print(); //调用父类的print()
}
public void test(String name){//测试参数
System.out.println(name); //调用形参
System.out.println(this.name);//调用本类name
System.out.println(super.name);//调用父类name
}
IDEA快捷键积累:ctrl + h 树形的展示当前类的子父类