javaSE之super關鍵字
阿新 • • 發佈:2018-12-05
在繼承那裡,我們提到過super,先來回顧一下:
在子類繼承父類時,子類的構造方法中首行會預設有一條語句super(),那麼我們在覆寫的過程中也可以用super.方法名()或者super.屬性來明確指明呼叫的是父類的屬性和方法。
看一段程式碼吧:
super呼叫同名的父類方法
class Person{
public void print(){
System.out.println("1.I am father");
}
}
class Student extends Person{
public void print (){
super.print();
System.out.println("2.I am child");
}
}
public class Test{
public static void main(String[] args) {
new Student().print();
}
}
super呼叫父類屬性
class Person{
public String info = "爸爸!";
}
class Student extends Person{
public String info = "兒子!" ;
public void print(){
//不找本類中的屬性
System.out.println(super.info);
System.out.println(this.info);
}
}
public class Test{
public static void main(String[] args) {
new Student().print();
}
}
看到這裡我們會發現super和this其實是有些相似的,只是super是子類呼叫父類的操作,而this是本類的操作。
下面我們通過一個表來看看super和this的區別: