this和super关键字详解
this关键字,指的是当前对象的引用,如下面代码中this指的是当前调用People类的构造方法的对象的引用,People p1 = new People(“xiaoming”,20),则this指的就是p1。
this.属性表示把当前对象的属性,并且和形参相区别。
this.方法表示当前类的方法,如果当前类则没在该类的父类中找该方法。
this(参数)表示调用该类中的其他构造方法,只能放在构造方法的首行。
package com.example.demo;
public class People {
private String name;
private Integer age;
public People(){
}
public People(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
super关键字指向的是当前对象的父类的引用。
super.属性表示父类的属性。
super(参数)表示调用父类的构造方法,也是只能放在构造方法的首行。
super.方法表示调用当前对象的父类的方法。
package com.example.demo;
public class Student extends People{
private Integer number;
public Student(){
super();
}
public Student(String name, int age, int number) {
super(name,age);
this.number = number;
}
}