java中 什麼叫隱藏(Hide)? 最好給個例子
阿新 • • 發佈:2019-01-28
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
技術核心和例項前面已經給出,這裡只是給出大家對這種現象的一個定義而已,馬克-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[]) {
。。。。。。。。。。
詳情請見: