java中 什么叫隱藏(Hide)
技術核心和實例前面已經(jīng)給出,這里只是給出大家對這種現(xiàn)象的一個定義而已,馬克-to-win:子類重新定義一個與父類那里繼承來的域變量完全相同的變量,稱為域的隱藏。
這里所謂隱藏是指子類擁有了兩個相同名字的變量,一個繼承自父類,另一個由自己定義。相當于把父類的變量“隱藏”起來了。
但子類的方法可以通過super操作父類的成員變量。
馬克- to-win:馬克 java社區(qū):防盜版實名手機尾號: 73203。
下面的例子當中,就分新卡和老卡,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[]) {
New_Card myNewCard = new New_Card(500);
/* 對象myNewCard有兩個balance變量,一個繼承自父類,另一個是自定義的。*/
System.out.println("馬克-to-win " + myNewCard.getThisBalanceInNew_Cardget());
System.out.println("馬克-to-win " + myNewCard.getOldBalanceInNew_Card());
System.out.println("馬克-to-win " + myNewCard.getOldBalanceByMythodInNew_Card());
System.out.println("馬克-to-win " + myNewCard.getBalance());
}
}
result is :
馬克-to-win 500.0
馬克-to-win 90.0
馬克-to-win 90.0
馬克-to-win 90.0