super關鍵字的作用 this和super的區別
阿新 • • 發佈:2021-01-07
super關鍵字的作用 this和super的區別
- 使用super可以從子類中呼叫父類中的構造方法、普通方法、屬性。語句必須放在子類的構造方法的首行。
- 下面以使用super呼叫父類中的指定構造方法為例 程式碼如下
package Practice;
class Person{ //定義父類物件
private String name;
private int age;
public Person(String name,int age) {
this.setName(name);
this.setage(age);
}
public String getName () {
return name;
}
public void setName(String name) {
this.name =name;
}
public int getage() {
return age;
}
public void setage(int age) {
this.age=age;
}
public String getInfo() {
return "姓名:"+this.getName()+";年齡:"+this.getage();
}
}
class Student extends Person{ //Student是Person的子類 擴充套件父類的功能
private String school;
public Student(String name,int age,String school) {
super(name,age); //指定呼叫父類中的構造方法
this.school=school;
}
public String getSchool() {
return school;
}
public void setSchool(String school) {
this.school=school;
}
public String getInfo() { //覆寫父類方法
return super.getInfo()+";學校:"+this.getSchool(); //擴充套件父類方法
}
}
public class Demo01{
public static void main(String[] args) {
Student stu =new Student("木有哆啦的A夢", 6,"動漫大學");
System.out.println(stu.getInfo()); //列印信,呼叫覆寫過的方法
}
}
- 執行結果如下
在上面的程式的字類中使用super()的形式呼叫了父類中的有兩個引數的構造方法然後在子類中又覆寫了父類中的getInfo()方法,所以輸出的內容是被子類覆寫過的內容。
2.super與this的作用非常的相似,都是可以呼叫構造、普通程式碼塊、普通方法、屬性的,那麼兩者直間到底有哪些區別呢?