1. 程式人生 > >this 與 super 的區別

this 與 super 的區別

/*
問題是:
我不僅僅要輸出區域性範圍的num,還要輸出本類成員範圍的num。怎麼辦呢?
我還想要輸出父類成員範圍的num。怎麼辦呢?
如果有一個東西和this相似,但是可以直接訪問父類的資料就好了。
恭喜你,這個關鍵字是存在的:super。

this和super的區別?
分別是什麼呢?
this代表本類對應的引用。
super代表父類儲存空間的標識(可以理解為父類引用,可以操作父類的成員)


怎麼用呢?
A:呼叫成員變數
this.成員變數 呼叫本類的成員變數
super.成員變數 呼叫父類的成員變數
B:呼叫構造方法
this(...) 呼叫本類的構造方法
super(...) 呼叫父類的構造方法
C:呼叫成員方法
this.成員方法 呼叫本類的成員方法
super.成員方法 呼叫父類的成員方法
*/
class Father {
public int num = 10;
}


class Son extends Father {
public int num = 20;

public void show() {
int num = 30;
System.out.println(num);
System.out.println(this.num);
System.out.println(super.num);
}
}


class ExtendsDemo5 {
public static void main(String[] args) {
Son s = new Son();
s.show();
}
}