
嘻道奇闻
- 文章199742
- 阅读14625734
Java继承开发:如何正确调用被重写的父类方法
涓€銆佸紑闂ㄨ灞憋細涓轰粈涔堟垜閲嶅啓浜嗘柟娉曪紝杩樿璋冪埗绫荤殑锛?/h3>
鏈夋病鏈夐亣鍒拌繃杩欑鎯呭喌锛熶綘杈涜緵鑻﹁嫤鍦ㄥ瓙绫诲啓浜嗘柊鏂规硶锛岀粨鏋滃彂鐜扮埗绫婚噷鐨勬棫鍔熻兘鐩存帴娑堝け浜嗭紒杩欏氨鍍忕粰鎵嬫満鏇存柊绯荤粺锛岀粨鏋滄妸閫氳褰曟悶涓簡鈥斺€斾綘璇村穿婧冧笉宕╂簝锛?/p>
鈥?strong>鈥嬮噸鐐规潵浜嗏€?/strong>鈥嬶細閲嶅啓鏂规硶涓嶇瓑浜庡畬鍏ㄦ姏寮冪埗绫绘柟娉曘€傚氨鍍忔敼瑁呮苯杞︼紝鍙戝姩鏈烘崲浜嗘柊鐨勶紝浣嗚疆鑳庡彲鑳借繕瑕佺敤鍘熷巶鐨勩€傝繖鏃跺€欏氨闇€瑕佺敤鈥?strong>鈥媠uper鍏抽敭瀛椻€?/strong>鈥嬫妸鐖剁被鏂规硶鎵惧洖鏉ャ€?/p>
涓句釜鏍楀瓙馃尠锛?/p>
java澶嶅埗class 鑰佹墜鏈?{ void 鎵撶數璇?) { System.out.println("姝e湪鎷ㄥ彿..."); } } class 鏅鸿兘鎵嬫満 extends 鑰佹墜鏈?{ @Override void 鎵撶數璇?) { super.鎵撶數璇?); // 鍏堢户鎵胯€佹墜鏈虹殑鎷ㄥ彿鍔熻兘 System.out.println("鏄剧ず鑱旂郴浜哄ご鍍?); } }
浣犵湅锛岃繖鏍锋棦淇濈暀浜嗗熀纭€鍔熻兘锛屽張娣诲姞浜嗘柊鐗规晥锛岀編婊嬫粙~
浜屻€佺伒榄傛嫹闂細super鍒板簳鏄釜浠€涔堥锛?/h3>
鈥?strong>鈥嬪皬鐧藉繀鐪嬧€?/strong>鈥嬶細super鍜宼his杩欏鍏勫紵缁忓父璁╀汉鐘糠绯娿€傚挶浠敤琛ㄦ牸瀵规瘮鏇存竻妤氾細
super | this | |
---|---|---|
鈥?strong>鈥嬩綔鐢ㄥ璞♀€?/strong>鈥?/td> | 鎵剧埞锛堢埗绫伙級 | 鎵捐嚜宸憋紙褰撳墠瀵硅薄锛?/td> |
鈥?strong>鈥嬩娇鐢ㄥ満鏅€?/strong>鈥?/td> | 鐖跺瓙绫绘湁鍚屽悕鏂规硶/鍙橀噺鏃?/td> | 褰撳墠绫诲唴閮ㄥ紩鐢?/td> |
鈥?strong>鈥嬪唴瀛樻寚鍚戔€?/strong>鈥?/td> | 鐖剁被瀹炰緥鐨勫紩鐢?/td> | 褰撳墠瀵硅薄鐨勫紩鐢?/td> |
鈥?strong>鈥嬭兘鍚﹀崟鐙敤鈥?/strong>鈥?/td> | 蹇呴』璺熷湪"."鍚庨潰 | 鍙互鍗曠嫭浣滀负杩斿洖鍊?/td> |
鈥?strong>鈥嬪垝閲嶇偣鈥?/strong>鈥嬶細super涓嶆槸瀵硅薄锛佸畠灏辨槸涓娉曠硸锛岀紪璇戝櫒浼氬府浣犲鐞嗙户鎵垮叧绯汇€?/p>
涓夈€佸疄鎴樻暀瀛︼細3绉嶅繀椤荤敤super鐨勫満鍚?/h3>
鈥?strong>鈥嬪満鏅?锛氱粍瑁呭紡寮€鍙戔€?/strong>鈥?br/> 褰撲綘瑕佸湪瀛愮被鏂规硶閲屾棦鐢ㄧ埗绫诲姛鑳藉張鍔犳柊鍔熻兘鏃讹細
java澶嶅埗class 姹夊牎 { void 鍒朵綔() { System.out.println("鏀鹃潰鍖?); } } class 鑺濆+姹夊牎 extends 姹夊牎 { @Override void 鍒朵綔() { super.鍒朵綔(); // 鍏堟斁闈㈠寘 System.out.println("鍔犺姖澹墖"); } }
鈥?strong>鈥嬫敞鎰忊€?/strong>鈥嬶細杩欓噷鐨剆uper灏卞儚鍋氭眽鍫$殑鍩虹姝ラ锛屽繕璁板姞鐨勮瘽锛屼綘鐨勬眽鍫″氨鍙墿鑺濆+娌℃湁闈㈠寘浜嗭紙閭h繕鑳藉彨姹夊牎鍚楋紵锛?/p>
鈥?strong>鈥嬪満鏅?锛氭晳鍛斤紒鐖剁被鏋勯€犲櫒蹇呴』鍒濆鍖栤€?/strong>鈥?br/> 鏂版墜鏈€瀹规槗韪╃殑鍧戞潵浜嗭紒鐪嬭繖娈典唬鐮侊細
java澶嶅埗class 鍔ㄧ墿 { String 鍝佺; 鍔ㄧ墿(String 鍝佺) { this.鍝佺 = 鍝佺; } } class 鐙楃嫍 extends 鍔ㄧ墿 { 鐙楃嫍() { // 杩欓噷涓嶅啓super浼氭姤閿欙紒 super("鏌熀"); } }
鈥?strong>鈥嬩负浠€涔堝繀椤诲啓鈥?/strong>鈥嬶細瀛愮被鍑虹敓鍓嶏紝寰楀厛鎶婄埗绫荤殑瀹跺簳锛堟垚鍛樺彉閲忥級鍑嗗濂姐€傚氨鍍忕敓瀛╁瓙寰楀厛鎬€鑳庡崄鏈堬紝涓嶈兘璺虫楠ゅ晩锛?/p>
鈥?strong>鈥嬪満鏅?锛氱┛瓒婂绾х户鎵库€?/strong>鈥?br/> 褰撶埛鐖风被鐨勬柟娉曡鐖哥埜绫婚噸鍐欙紝瀛欏瓙绫绘兂璋冪敤鐖风埛鐨勬柟娉曟€庝箞鍔烇紵
java澶嶅埗class 鐖风埛 { void 璁叉晠浜?) { System.out.println("涓夊浗婕斾箟"); } } class 鐖哥埜 extends 鐖风埛 { @Override void 璁叉晠浜?) { System.out.println("閲戝焊姝︿緺"); } } class 鍎垮瓙 extends 鐖哥埜 { void 鍚巻鍙?) { super.璁叉晠浜?); // 鍙兘璋冨埌鐖哥埜绫荤殑鐗堟湰 // 鎯冲惉鐖风埛鐨勬晠浜嬶紵寰楄鐖哥埜绫讳繚鐣欓€氶亾 } }
鈥?strong>鈥嬭В鍐虫柟娉曗€?/strong>鈥嬶細鍦ㄧ埜鐖哥被鐨勯噸鍐欐柟娉曢噷璋冪敤super锛岃繖鏍峰瓩瀛愮被灏辫兘閫氳繃閾惧紡璋冪敤瀹炵幇锛?/p>
java澶嶅埗// 淇敼鍚庣殑鐖哥埜绫?/span> class 鐖哥埜 extends 鐖风埛 { @Override void 璁叉晠浜?) { super.璁叉晠浜?); // 淇濈暀鐖风埛鐨勬柟娉?/span> System.out.println("閲戝焊姝︿緺"); } }
鍥涖€侀伩鍧戞寚鍗楋細5涓娉暀璁?/h3>
- 鈥?strong>鈥媠uper鐨勪綅缃笉瀵逛細瑕佸懡鈥?/strong>鈥?br/>
鍦ㄦ瀯閫犲櫒閲岋紝super蹇呴』鏀惧湪绗竴琛岋紒灏卞儚鐩栨埧瀛愬緱鍏堟墦鍦板熀锛?/li>
java澶嶅埗class 閿欒绀轰緥 {
閿欒绀轰緥() {
System.out.println("鍏堝共鍒殑"); // 浼氭姤閿?/span>
super();
}
}
- 鈥?strong>鈥嬮€掑綊璋冪敤鍙樻寰幆鈥?/strong>鈥?br/>
杩欑閿欒浠g爜鑳借浣犵▼搴忓師鍦扮垎鐐葛煉ワ細
java澶嶅埗class 浣滄绀鸿寖 {
void 鏂规硶A() {
super.鏂规硶A(); // 鏃犻檺濂楀▋寮€濮?/span>
// 杩欓噷搴旇鍐欏叾浠栭€昏緫
}
}
-
鈥?strong>鈥嬮潤鎬佹柟娉曚笉鑳界敤super鈥?/strong>鈥?br/>
璁颁綇锛歴tatic鏂规硶鏄被绾у埆鐨勶紝鍜屽璞℃病鍏崇郴锛宻uper鑷劧鐢ㄤ笉浜嗐€?/p>
-
鈥?strong>鈥嬫帴鍙g殑default鏂规硶鈥?/strong>鈥?br/>
鐜板湪Java鎺ュ彛鍙互鏈夊疄鐜颁簡锛屼絾璋冪敤鏂瑰紡涓嶅悓锛?/p>
java澶嶅埗interface 鏅鸿兘璁惧 {
default void 寮€鏈?) {
System.out.println("鎸囩汗楠岃瘉");
}
}
class 鎵嬫満 implements 鏅鸿兘璁惧 {
@Override
void 寮€鏈?) {
鏅鸿兘璁惧.super.寮€鏈?); // 鐗规畩璇硶
}
}
- 鈥?strong>鈥嬪缁ф壙鐨勯櫡闃扁€?/strong>鈥?br/>
铏界劧Java涓嶆敮鎸佸缁ф壙锛屼絾閫氳繃鎺ュ彛鍜岄粯璁ゆ柟娉曪紝杩樻槸鍙兘閬囧埌鏂规硶鍐茬獊銆傝繖鏃跺€欏氨寰楃敤锛?/li>
java澶嶅埗class 娣疯鍎?implements 鐖哥埜, 濡堝 {
void 鎵撴嫑鍛?) {
鐖哥埜.super.闂€?); // 鏄庣‘鎸囧畾鐢ㄥ摢涓埗绫?/span>
}
}
涓汉瑙傜偣鏃堕棿
class 閿欒绀轰緥 {
閿欒绀轰緥() {
System.out.println("鍏堝共鍒殑"); // 浼氭姤閿?/span>
super();
}
}
class 浣滄绀鸿寖 {
void 鏂规硶A() {
super.鏂规硶A(); // 鏃犻檺濂楀▋寮€濮?/span>
// 杩欓噷搴旇鍐欏叾浠栭€昏緫
}
}
鈥?strong>鈥嬮潤鎬佹柟娉曚笉鑳界敤super鈥?/strong>鈥?br/> 璁颁綇锛歴tatic鏂规硶鏄被绾у埆鐨勶紝鍜屽璞℃病鍏崇郴锛宻uper鑷劧鐢ㄤ笉浜嗐€?/p>
鈥?strong>鈥嬫帴鍙g殑default鏂规硶鈥?/strong>鈥?br/> 鐜板湪Java鎺ュ彛鍙互鏈夊疄鐜颁簡锛屼絾璋冪敤鏂瑰紡涓嶅悓锛?/p>
interface 鏅鸿兘璁惧 {
default void 寮€鏈?) {
System.out.println("鎸囩汗楠岃瘉");
}
}
class 鎵嬫満 implements 鏅鸿兘璁惧 {
@Override
void 寮€鏈?) {
鏅鸿兘璁惧.super.寮€鏈?); // 鐗规畩璇硶
}
}
class 娣疯鍎?implements 鐖哥埜, 濡堝 {
void 鎵撴嫑鍛?) {
鐖哥埜.super.闂€?); // 鏄庣‘鎸囧畾鐢ㄥ摢涓埗绫?/span>
}
}
骞蹭簡杩欎箞澶氬勾Java寮€鍙戯紝鎴戝彂鐜板緢澶氭柊浜烘妸缁ф壙鎯冲緱澶畝鍗曘€俿uper杩欎釜鍏抽敭瀛楀氨鍍忔渚犲皬璇撮噷鐨勫唴鍔熷績娉曗€斺€旂敤濂戒簡鑳藉洓涓ゆ嫧鍗冩枻锛岀敤涓嶅ソ灏变細璧扮伀鍏ラ瓟銆傚缓璁ぇ瀹讹細
-
鈥?strong>鈥嬪皯鐢ㄧ户鎵匡紝澶氱敤缁勫悎鈥?/strong>鈥?br/> 涓嶆槸鎵€鏈夋儏鍐甸兘闇€瑕佺户鎵匡紝灏卞儚涓嶆槸鎵€鏈夐棶棰橀兘闇€瑕佺敤閿ゅ瓙鐮?/p>
-
鈥?strong>鈥嬪啓娉ㄩ噴锛佸啓娉ㄩ噴锛佸啓娉ㄩ噴锛佲€?/strong>鈥?br/> 鍦ㄥ鏉傜殑缁ф壙鍏崇郴閲岋紝涓嶅姞娉ㄩ噴鐨剆uper璋冪敤锛屼笁涓湀鍚庝綘鑷繁閮界湅涓嶆噦
-
鈥?strong>鈥婭DE鏄綘鐨勫ソ鏈嬪弸鈥?/strong>鈥?br/> Eclipse/IntelliJ鐨勭户鎵垮叧绯诲浘锛圕trl+T锛夛紝姣斾綘鑷繁鑴戣ˉ闈犺氨澶氫簡
鏈€鍚庤鍙ュぇ瀹炶瘽锛氶潰鍚戝璞¤璁″氨鍍忔惌涔愰珮锛岀户鎵挎槸鍏朵腑涓€绉嶆嫾鎺ユ柟寮忋€傜敤super璋冪敤鐖剁被鏂规硶鏃讹紝澶氭兂鎯虫槸涓嶆槸鐪熺殑闇€瑕佺户鎵匡紝鍒负浜嗙敤鑰岀敤銆備綘鍝侊紝浣犵粏鍝亊