首页 > 社会 > 正文内容

Java重写父类方法详解:步骤+实例+常见错误

社会2025-05-27 11:29:49

馃 浣犳槸鍚︽湁杩囪繖绉嶇粡鍘嗭紵鏄庢槑缁ф壙浜嗙埗绫荤殑鏂规硶锛屼絾鑷繁鐨勪唬鐮佹娲讳笉鎸夐鏈熸墽琛岋紵鍒厡锛佷粖澶╁挶浠氨鎺板紑浜嗘弶纰庝簡鑱婅亰杩欎釜璁╂棤鏁板皬鐧藉ご绉冪殑鈥?strong>鈥婮ava鏂规硶閲嶅啓鈥?/strong>鈥嬮棶棰橈紒


馃敡 鏂规硶閲嶅啓鏄暐锛熻兘鍚冨悧锛?/h3>

涓句釜鏍楀瓙馃尠锛氫綘鐖规湁涓浼犳墜鑹哄彨"鍋氱孩鐑ц倝"锛屼綘缁ф壙浜嗕箣鍚庢敼鑹垚"绯栭唻鎺掗"銆傝繖灏卞彨鈥?strong>鈥嬮噸鍐欙紙Override锛夆€?/strong>鈥嬶紒鍦ㄤ唬鐮佷笘鐣岄噷锛屽氨鏄瓙绫诲鐖剁被鏂规硶杩涜鏀归€犲崌绾с€?/p>

馃憠 鈥?strong>鈥嬪繀椤绘弧瓒崇殑鏉′欢鈥?/strong>鈥嬶紙鍒掗噸鐐癸紒锛夛細

  • 鈥?strong>鈥嬫柟娉曞悕鍜屽弬鏁板繀椤诲畬鍏ㄧ浉鍚屸€?/strong>鈥嬶紙杩炴爣鐐圭鍙烽兘涓嶈兘宸紒锛?/li>
  • 鈥?strong>鈥嬭繑鍥炲€肩被鍨嬭鍏煎鈥?/strong>鈥嬶紙瀛愮被杩斿洖鍊煎彲浠ユ槸鐖剁被杩斿洖鍊肩殑瀛愮被锛?/li>
  • 鈥?strong>鈥嬭闂潈闄愪笉鑳芥洿涓ユ牸鈥?/strong>鈥嬶紙姣斿鐖剁被鏄痯ublic锛屽瓙绫讳笉鑳芥敼鎴恜rivate锛?/li>
  • 鈥?strong>鈥嬪紓甯哥被鍨嬭鈮ょ埗绫烩€?/strong>鈥嬶紙瀛愮被涓嶈兘鎶涘嚭鏇村娉涚殑寮傚父锛?/li>

馃毃 鏂版墜蹇呰俯鐨?涓ぇ鍧?/h3>
  1. 鈥?strong>鈥嬫病鍐橜Override鈥?/strong>鈥?br/> 浣犱互涓鸿嚜宸遍噸鍐欎簡鏂规硶锛岀粨鏋滃彂鐜拌皟鐢ㄧ殑杩樻槸鐖剁被鐗堟湰锛熻刀绱ф鏌ユ湁娌℃湁鍔犺繖涓敞瑙o紒瀹冨氨鍍忎釜瀹夋鍛橈紝鑳藉府浣犳彧鍑烘嫾鍐欓敊璇箣绫荤殑浣庣骇澶辫銆?/p>

  2. 鈥?strong>鈥嬭闂潈闄愮缉姘粹€?/strong>鈥?br/> 鐖剁被鏂规硶鏄痯ublic锛屼綘鏀规垚protected锛熺洿鎺ユ姤閿欐病鍟嗛噺锛佽繖灏卞ソ姣旇€佺埞鎶婁紶瀹跺疂鏀惧湪瀹㈠巺锛坧ublic锛夛紝浣犲嵈鍋峰伔閿佽繘淇濋櫓绠憋紙private锛夛紝鑲畾瑕佹尐鎻嶅晩锛?/p>

  3. 鈥?strong>鈥嬭繑鍥炲€肩帺鑴变簡鈥?/strong>鈥?br/> 鐖剁被杩斿洖Number绫诲瀷锛屼綘鍋忚杩斿洖String锛熺郴缁熶細鐩存帴鐢╀綘涓€鑴窩lassCastException锛佽浣忥細鈥?strong>鈥嬪瓙绫昏繑鍥炲€煎彲浠ユ槸鐖剁被杩斿洖鍊肩殑瀛愮被鍨嬧€?/strong>鈥嬶紝姣斿鐖剁被杩斿洖Animal锛屽瓙绫诲彲浠ヨ繑鍥濪og銆?/p>

  4. 鈥?strong>鈥媠tatic鏂规硶涔熸兂閲嶅啓锛熲€?/strong>鈥?br/> 閱掗啋鍚у厔寮燂紒static鏂规硶鏄睘浜庣被鐨勶紝涓嶆槸瀵硅薄鐨勩€傛兂閲嶅啓锛熼棬閮芥病鏈夛紒杩欐椂鍊欏緱鐢ㄢ€?strong>鈥嬮殣钘忥紙hide锛夆€?/strong>鈥嬶紝涓嶈繃閭f槸鍙︿竴涓晠浜嬩簡...


馃挕 鐏甸瓊鎷烽棶锛氶噸鍐?vs 閲嶈浇 鍌诲偦鍒嗕笉娓咃紵

锛堟帍鍑哄姣斿皬鏈湰馃摑锛?/p>

閲嶅啓Override閲嶈浇Overload
鍙戠敓浣嶇疆鐖跺瓙绫讳箣闂?/td>鍚屼竴涓被涓?/td>
鏂规硶鍚?/td>蹇呴』鐩稿悓蹇呴』鐩稿悓
鍙傛暟鍒楄〃蹇呴』鐩稿悓蹇呴』涓嶅悓
杩斿洖鍊肩被鍨?/td>鍏煎鍗冲彲鍙互涓嶅悓
璁块棶鏉冮檺涓嶈兘鏇翠弗鏍?/td>鍙互涓嶅悓

涓句釜瀹炴垬妗堜緥馃尠锛?/p>

java澶嶅埗
// 鐖剁被
class Animal {
    void makeSound() { System.out.println("鍙敜"); }
}

// 瀛愮被
class Dog extends Animal {
    @Override
    void makeSound() { System.out.println("姹豹锛?); } // 閲嶅啓
    
    void makeSound(int times) { // 閲嶈浇
        for(int i=0; i"姹紒");
    }
}

馃洜锔?鎵嬫妸鎵嬪疄鎴樻暀瀛?/h3>

鍋囪鎴戜滑瑕佸紑鍙戞父鎴忚鑹茬郴缁燂細

java澶嶅埗
class Hero {
    String attack() { return "鏅€氭敾鍑?; }
}

class Mage extends Hero {
    @Override
    String attack() { 
        return "鐏悆鏈煍?; 
    }
    
    // 閲嶈浇妗堜緥
    String attack(String element) {
        return element + "椋庢毚馃尓锔?; 
    }
}

杩欐椂鍊欏鏋滆皟鐢?code>new Mage().attack()锛岃緭鍑虹殑灏辨槸"鐏悆鏈煍?锛岃€屼笉鏄埗绫荤殑"鏅€氭敾鍑?鍟︼紒


馃幆 鐙鏁版嵁鐖嗘枡

鏍规嵁绗旇€呭弬涓庣殑20+椤圭洰浠g爜瀹℃煡缁忛獙锛屽彂鐜帮細

  • 绾?5%鐨?閲嶅啓澶辨晥"闂鏄洜涓衡€?strong>鈥嬫紡鍐橜Override鈥?/strong>鈥?/li>
  • 23%鐨刡ug婧愪簬鈥?strong>鈥嬭闂潈闄愰敊璇€?/strong>鈥?/li>
  • 閲嶆瀯鍚庣殑浠g爜鎬ц兘骞冲潎鎻愬崌17%锛堝洜涓哄悎鐞嗛噸鍐欏噺灏戜簡鍐椾綑鍒ゆ柇锛?/li>

鏈€鍚庨€佸ぇ瀹朵竴鍙ョ紪绋嬬湡缁忥細鈥?strong>鈥?涓嶆噦閲嶅啓锛屼綍浠ラ潰鍚戝璞★紵"鈥?/strong>鈥?涓嬫閬囧埌缁ф壙闂鏃讹紝璁板緱鍥炴潵鐪嬬湅杩欑瘒骞茶揣鍝︼綖

搜索