一:成員變量的躲藏
子類承繼的辦法只能操作子類承繼和躲藏的成員變量。子類新界說(shuō)的辦法可以操作子類承繼和子類新聲明的成員變量,但無(wú)法操作子類躲藏的成員變量(需運(yùn)用super關(guān)鍵字操作子類躲藏的成員變量(下次更新super關(guān)鍵字))。
Goods.java
packagechengyuanbianliangdeyincang;publicclassGoods{publicdoubleweight;publicvoidoldSetWeight(doublew){
weight=w;
System.out.println(“double型的weight=”+weight);
}publicdoubleoldGetPrice(){doubleprice=weight*10;returnprice;
}
}
CheapGoods.java
packagechengyuanbianliangdeyincang;publicclassCheapGoodsextendsGoods{publicintweight;publicvoidnewSetWeight(intw){
weight=w;
System.out.println(“int型的weight=”+weight);
}publicdoublenewGetPrice(){doubleprice=weight*10;returnprice;
}
}
yincang.java
packagechengyuanbianliangdeyincang;publicclassyincang{publicstaticvoidmain(String[]args){
CheapGoodscheapGoods=newCheapGoods();//cheapGoods.weight=198.98;是不合法的,由于子類目標(biāo)的weight變量已經(jīng)是int型cheapGoods.newSetWeight(198);
System.out.println(“目標(biāo)cheapGoods的weight的值是:”+cheapGoods.weight);
System.out.println(“cheapGoods用子類新增的優(yōu)惠辦法核算價(jià)格:”+cheapGoods.newGetPrice());
cheapGoods.oldSetWeight(198.987);//子類目標(biāo)調(diào)用承繼的辦法操作躲藏的double型變量weightSystem.out.println(“cheapGoods運(yùn)用承繼的辦法(無(wú)優(yōu)惠核算價(jià)格)”+cheapGoods.oldGetPrice());
}
}
二:辦法重寫(xiě)
1.重寫(xiě)的語(yǔ)法規(guī)則
假如子類可以承繼父類的某個(gè)辦法,那么子類就有權(quán)力重寫(xiě)這個(gè)辦法。所謂辦法重寫(xiě),是指子類中界說(shuō)一個(gè)辦法,這個(gè)辦法的類型和父類的辦法的類型共同或者是父類的辦法的類型的子類型(所謂子類型,是指假如父類的辦法的類型是“類”,那么答應(yīng)子類的重寫(xiě)辦法的類型是“子類”),并且這個(gè)辦法的名字,參數(shù)個(gè)數(shù),參數(shù)的類型和父類的辦法完全相同,子類如此界說(shuō)的辦法稱作子類重寫(xiě)的辦法。
2.重寫(xiě)的目的
重寫(xiě)辦法既可以操作承繼的成員變量、調(diào)用承繼的辦法,也可以操作子類新聲明的成員變量、調(diào)用新界說(shuō)的其他辦法,但無(wú)法操作被子類躲藏的成員變量和辦法。假如子類想運(yùn)用被躲藏的辦法或成員變量,必須運(yùn)用關(guān)鍵字super(下次更新super用法)。
在下面的比如中,ImportantUniversity是University類的子類,子類重寫(xiě)了父類的enterRule()辦法。
University.java
packagefangfachongxie;publicclassUniversity{voidenterRule(doublemath,doubleenglish,doublechinese){doubletotal=math+english+chinese;if(total>=180){
System.out.println(total+”分?jǐn)?shù)到達(dá)大學(xué)錄取線”);
}else{
System.out.println(total+”分?jǐn)?shù)未到達(dá)大學(xué)錄取線”);
}
}
}
ImportantUniversity.java
packagefangfachongxie;publicclassImportantUniversityextendsUniversity{voidenterRule(doublemath,doubleenglish,doublechinese){doubletotal=math+english+chinese;if(total>=220){
System.out.println(total+”分?jǐn)?shù)到達(dá)重點(diǎn)大學(xué)錄取線”);
}else{
System.out.println(total+”分?jǐn)?shù)未到達(dá)重點(diǎn)大學(xué)錄取線”);
}
}
}
Chongxie.java
packagefangfachongxie;publicclassChongxie{publicstaticvoidmain(String[]args){doublemath=62,english=76.5,chinese=67;
ImportantUniversityuniver=newImportantUniversity();
univer.enterRule(math,english,chinese);//調(diào)用重寫(xiě)的辦法math=91;
english=82;
chinese=86;
univer.enterRule(math,english,chinese);
}
}
運(yùn)轉(zhuǎn)結(jié)果如下:
205.5分?jǐn)?shù)未到達(dá)重點(diǎn)大學(xué)錄取線
259.0分?jǐn)?shù)到達(dá)重點(diǎn)大學(xué)錄取線
3.重寫(xiě)的注意事項(xiàng)
重寫(xiě)父類的辦法時(shí),不答應(yīng)降低辦法的拜訪權(quán)限,但可以進(jìn)步拜訪權(quán)限(拜訪約束修飾符按拜訪權(quán)限從高到低的排列次序是public、protected、友愛(ài)的、private)。下面的代碼中,子類重寫(xiě)父親的辦法w,該辦法在父類中的拜訪權(quán)限是protected等級(jí),子類重寫(xiě)時(shí)不答應(yīng)等級(jí)低于protected,例如:
classA{protectedfloatw(floatx,floaty){returnx-y;
}
}classBextendsA{floatw(floatx,floaty){//不合法,由于降低了拜訪權(quán)限r(nóng)eturnx+y;
}
}classCextendsA{publicfloatw(floatx,floaty){//合法,進(jìn)步了拜訪權(quán)限r(nóng)eturnx*y;
}
}
廣州天河區(qū)珠江新城富力盈力大廈北塔2706
020-38013166(網(wǎng)站咨詢專線)
400-001-5281 (售后服務(wù)熱線)
深圳市坂田十二橡樹(shù)莊園F1-7棟
Site/ http://www.szciya.com
E-mail/ itciya@vip.163.com
品牌服務(wù)專線:400-001-5281
長(zhǎng)沙市天心區(qū)芙蓉中路三段398號(hào)新時(shí)空大廈5樓
聯(lián)系電話/ (+86 0731)88282200
品牌服務(wù)專線/ 400-966-8830
旗下運(yùn)營(yíng)網(wǎng)站:
Copyright ? 2016 廣州思洋文化傳播有限公司,保留所有權(quán)利。 粵ICP備09033321號(hào)