1. 程式人生 > >java中 什麼叫隱藏(Hide)? 最好給個例子

java中 什麼叫隱藏(Hide)? 最好給個例子

4.隱藏
技術核心和例項前面已經給出,這裡只是給出大家對這種現象的一個定義而已,馬克-to-win:子類重新定義一個與父類那裡繼承來的域變數完全相同的變數,稱為域的隱藏。
這裡所謂隱藏是指子類擁有了兩個相同名字的變數,一個繼承自父類,另一個由自己定義。當子類執行父類的方法時,處理的是父類的變數,而當子類執行它自己定義的方法時,所操作的就是它自定義的變數,而把繼承自父類的變數“隱藏”起來了。
上面說的是一般的情況,子類方法操作子類的變數。其實,也可以子類的方法通過super操作父類的成員變數。

下面的例子當中,就分新卡和老卡,this獲取新卡的餘額,super獲取老卡的餘額。
例1.4.1
class HealthCardM_t_w {
    double balance = 90;
    double getBalance() {
        return this.balance;
    }
}

class New_Card extends HealthCardM_t_w {
    double balance; // 隱藏父類的balance
    public New_Card(int in) {
        balance = in;
    }
    double getOldBalanceInNew_Card() {
        return super.balance;
    }
    double getOldBalanceByMythodInNew_Card() {
        return super.getBalance();
    }
    double getThisBalanceInNew_Cardget() {
        return this.balance;
    }
}

public class Test {
    public static void main(String args[]) {
。。。。。。。。。。
詳情請見:
http://www.mark-to-win.com/JavaBeginner/JavaBeginner3_web.html#Hide