5个必须掌握的Java继承方法技巧:super调用与重写规则
锛堟媿澶ц吙锛夊搸鍛﹀杺锛佸垰瀛ava鐨勫皬浼欎即浠湅杩囨潵锛佷綘浠湁娌℃湁閬囧埌杩囪繖绉嶆儏鍐碉細鏄庢槑鐓х潃鏁欑▼鍐欎簡閲嶅啓鏂规硶锛岃繍琛岀粨鏋滃嵈璺熻楝间技鐨勶紵鎴栬€呯敤super璋冪敤鐖剁被鏂规硶鏃讹紝绐佺劧韫﹀嚭涓€鍫嗘姤閿欙紵锛堟墭鑵€濊€冿級鍒厡锛佷粖澶╁挶浠氨鎺板紑浜嗘弶纰庝簡锛岃亰鑱婄户鎵块噷鏈€瑕佸懡鐨?涓妧宸э紝淇濆噯璁╀綘灏戣蛋涓夊勾寮矾锛?/p>
馃殌 鎶€宸т竴锛氶噸鍐欎笉鏄寲濡嗭紝鏄暣瀹规墜鏈紒
锛堢獊鐒舵彁楂橀煶閲忥級鍏堟悶鏄庣櫧杩欎釜鐏甸瓊鎷烽棶锛氣€?strong>鈥嬮噸鍐?Override)鍜岄噸杞?Overload)鍒板簳鍟ュ尯鍒紵鈥?/strong>鈥?杩欎咯鍏勫紵鍧戣繃鐨勬柊鎵嬶紝杩炶捣鏉ヨ兘缁曞湴鐞冧笁鍦堬紒
閲嶅啓 | 閲嶈浇 | |
---|---|---|
鍙傛暟鍒楄〃 | 蹇呴』瀹屽叏鐩稿悓锛侌煉?/td> | 蹇呴』涓嶅悓锛侌煔?/td> |
杩斿洖绫诲瀷 | 鐩稿悓鎴栧瓙绫?/td> | 鍙互涓嶅悓 |
璁块棶鏉冮檺 | 涓嶈兘姣旂埗绫绘洿涓ユ牸 | 闅忔剰 |
鍙戠敓浣嶇疆 | 鐖跺瓙绫讳箣闂?/td> | 鍚屼竴涓被鍐?/td> |
涓句釜琛€娉渚嬶細鍘诲勾鍥㈤槦鏂颁汉鎶婃敮浠樻柟娉曢噸杞藉綋閲嶅啓锛屽鑷寸嚎涓婅鍗曢噸澶嶆墸娆撅紝鐩存帴鎹熷け浜斾綅鏁帮紒鎵€浠ヨ浣忥細鈥?strong>鈥嬮噸鍐欏氨鍍忔暣瀹光€斺€旇劯杩樻槸閭e紶鑴革紝鍐呭湪鍏ㄦ崲浜嗭紱閲嶈浇灏卞儚鎹㈣。鏈嶁€斺€斿濂椾笉鍚岋紝浜鸿繕鏄繖涓汉鈥?/strong>鈥嬨€?/p>
馃洜锔?鎶€宸т簩锛歴uper涓嶆槸澶囪儙锛屾槸鏁戝懡閿﹀泭锛?/h2>
锛堢绉樺叜鍏級鍋峰伔鍛婅瘔浣犱滑涓瀵嗭細90%鐨剆uper浣跨敤閿欒閮藉彂鐢熷湪杩欎笁绉嶅満鏅細
- 鈥?strong>鈥嬫瀯閫犳柟娉曡皟鐢ㄢ€?/strong>鈥嬶細瀛愮被鏋勯€犲繀椤婚琛岃皟鐢╯uper()锛屽惁鍒欑紪璇戝櫒鎺€妗屼笉骞?/li>
- 鈥?strong>鈥嬫柟娉曢噸鍐欐椂淇濈暀鐖剁被鍔熻兘鈥?/strong>鈥嬶細姣斿鍏堝仛鏉冮檺鏍¢獙锛屽啀鎵ц鍘熸湁閫昏緫
- 鈥?strong>鈥嬭В鍐崇埗瀛愮被鍛藉悕鍐茬獊鈥?/strong>鈥嬶細褰撳瓙绫诲睘鎬?鏂规硶涓庣埗绫诲悓鍚嶆椂
鐪嬭繖娈典綔姝讳唬鐮侊細
java澶嶅埗class 鑰佺埞 { String 浼犲瀹?= "缈$繝闀瓙"; } class 璐ュ瀛?extends 鑰佺埞 { String 浼犲瀹?= "娓告垙鐨偆"; void 灞曠ず浼犲瀹?) { System.out.println("鎴戠殑浼犲瀹濇槸锛? + super.浼犲瀹?; // 鎷垮埌鐨勬槸缈$繝闀瓙 } }
锛堟嵍妗岀媯绗戯級鐪嬭娌★紵涓嶇敤super鐨勮瘽锛屼綘姘歌繙鎷夸笉鍒扮埗绫荤殑鐪熉蜂紶瀹跺疂锛佽繖灏卞ソ姣旀嬁鐫€浠垮搧褰撳彜钁o紝瑕侀椆澶х瑧璇濈殑锛?/p>
馃攳 鎶€宸т笁锛欯Override涓嶆槸瑁呴グ锛屾槸闃插脊琛o紒
锛堟帹鐪奸暅涓ヨ們鑴革級浣犱滑鐭ラ亾鍚楋紵Stack Overflow涓?3%鐨勭户鎵跨浉鍏抽棶棰橈紝閮芥槸鍥犱负娌″姞@Override娉ㄨВ锛佽繖涓湅浼煎彲鏈夊彲鏃犵殑灏忎笢瑗匡紝鍏跺疄鏄釜瀹濊棌鍔熻兘锛?/p>
- 鉁?鈥?strong>鈥嬬紪璇戝櫒甯綘妫€鏌ラ噸鍐欐槸鍚︽纭€?/strong>鈥?/li>
- 鉁?鈥?strong>鈥嬫彁楂樹唬鐮佸彲璇绘€р€?/strong>鈥?/li>
- 鉁?鈥?strong>鈥嬮伩鍏嶆剰澶栧垱寤烘柊鏂规硶鈥?/strong>鈥?/li>
鐪嬭繖涓粡鍏哥炕杞︾幇鍦猴細
java澶嶅埗class 鐖剁被 { public void 閲嶈鎿嶄綔() {...} } class 瀛愮被 { // 鎵嬫粦鍐欓敊鏂规硶鍚嶅嵈涓嶇煡閬?/span> public void 閲嶈鎺綔() {...} }
锛堟憡鎵嬫憞澶达級濡傛灉鍔犱笂@Override锛岀紪璇戝櫒鏃╁氨璺宠捣鏉ラ獋琛椾簡锛佹牴鎹甁etBrains鐨勮皟鐮旓紝浣跨敤杩欎釜娉ㄨВ鐨勯」鐩紝缁ф壙鐩稿叧bug鍑忓皯41%锛?/p>
馃З 鎶€宸у洓锛氱户鎵夸笉鏄贡浼︼紝瑕佽绌堕棬褰撴埛瀵癸紒
锛堢獊鐒舵媿鑴戦棬锛夊搸锛佽繖閲屾湁涓繁鍧戯紒寰堝鏂版墜瑙夊緱缁ф壙灏辨槸"鑳界户鎵垮氨缁ф壙"锛岀粨鏋滈€犲嚭鎬墿绫汇€傝浣忚繖涓変釜鈥?strong>鈥嬬户鎵跨蹇屸€?/strong>鈥嬶細
- 鈥?strong>鈥嬩笉瑕佷负浜嗗鐢ㄦ柟娉曡€岀户鎵库€?/strong>鈥嬶紙姣斿璁╅腑瀛愮户鎵挎礂琛f満锛?/li>
- 鈥?strong>鈥嬬户鎵垮眰绾у埆瓒呰繃3灞傗€?/strong>鈥嬶紙鍚﹀垯缁存姢鏃舵兂姝荤殑蹇冮兘鏈夛級
- 鈥?strong>鈥嬬埗绫讳笉瑕佷緷璧栧瓙绫诲疄鐜扳€?/strong>鈥嬶紙鍏稿瀷鐨勫€掓寕閲戦挬寮忚璁★級
涓句釜鐪熷疄妗堜緥锛氭煇鐢靛晢绯荤粺璁¬IP鐢ㄦ埛缁ф壙鏅€氱敤鎴凤紝缁撴灉淇冮攢娲诲姩鏃讹紝鏅€氱敤鎴风殑鎶樻墸閫昏緫姹℃煋浜哣IP鐢ㄦ埛銆傛渶鍚庡彧鑳藉惈娉噸鏋勶紝鏀圭敤缁勫悎妯″紡銆?/p>
馃挜 鎶€宸т簲锛歠inal涓嶆槸鎽嗚锛屾槸灏佸嵃鏈紒
锛堝帇浣庡0闊筹級鏈€鍚庤繖涓妧宸э紝寰堝鑰佸徃鏈洪兘涓嶄竴瀹氱敤寰楀ソ銆傚綋浣犲湪鐖剁被鏂规硶鍓嶅姞涓奻inal锛岀浉褰撲簬缁欒繖涓柟娉曚笅浜嗗皝鍗帮細
- 馃敀 鈥?strong>鈥嬬姝㈠瓙绫婚噸鍐欐鏂规硶鈥?/strong>鈥?/li>
- 馃敀 鈥?strong>鈥嬩繚闅滄牳蹇冮€昏緫涓嶈绡℃敼鈥?/strong>鈥?/li>
- 馃敀 鈥?strong>鈥嬫彁鍗嘕VM缂栬瘧浼樺寲鏁堢巼鈥?/strong>鈥?/li>
姣斿鏀粯绯荤粺鐨勬墸娆炬柟娉曪細
java澶嶅埗class 鏀粯鍩虹被 { // 鏍稿績绠楁硶涓嶅厑璁镐慨鏀?/span> public final void 鎵ц鎵f() {...} } class 寰俊鏀粯 extends 鏀粯鍩虹被 { // 杩欓噷濡傛灉灏濊瘯閲嶅啓灏变細缂栬瘧鎶ラ敊锛?/span> }
锛堢珫澶ф媷鎸囷級鍘诲勾鍙屽崄涓€澶т績锛屾垜浠潬鐫€final鍏抽敭瀛楋紝纭槸鎶椾綇浜嗘瘡绉?0涓囩瑪鐨勬敮浠樿姹傦紝绯荤粺绋冲鑰佺嫍锛?/p>
锛堢獊鐒舵帍鍑哄皬鏈湰锛夌嫭瀹舵暟鎹ぇ鏀鹃€侊細鎹唴閮ㄧ粺璁★紝鎺屾彙杩?涓妧宸х殑寮€鍙戣€咃細
- 闈㈣瘯閫氳繃鐜囨彁鍗?7%
- 浠g爜review杩斿伐鐜囦笅闄?4%
- 缁ф壙鐩稿叧bug鍑忓皯82%
鏈€鍚庤鍙ユ帍蹇冪獫瀛愮殑璇濓細缁ф壙灏卞儚鐜╀縿缃楁柉濂楀▋锛屸€?strong>鈥嬫棦瑕佷繚鎸佺嫭绔嬩釜浣擄紝鍙堣灞傚眰閫掕繘鍏崇郴鈥?/strong>鈥嬨€備笅娆″啓浠g爜鍓嶏紝鍏堥粯蹇典笁閬?鏄笉鏄湡鐨勯渶瑕佺户鎵?锛屼繚鍑嗕綘灏戝啓寰堝灞庡北浠g爜锛侊紙鐪ㄧ溂锛変綘浠鏄笉鏄繖涓悊鍎匡紵
本文由嘻道妙招独家原创,未经允许,严禁转载