1. 程式人生 > >javaSE之super關鍵字

javaSE之super關鍵字

在繼承那裡,我們提到過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的區別:
在這裡插入圖片描述