更新時間:2020-07-29 15:06:06 來源:動力節點 瀏覽2350次
回顧一下方法重載:
1.什么時候考慮使用方法重載overload?
答:當在一個類中,如果功能相似的話,建議將名稱定義成一樣,只是參數列表(個數,順序,類型)不同,這樣代碼美觀,且方便編程。
2.什么條件構成方法重載overload?
答:(1)同一個類當中;(2)方法名相同;(3)參數列表不同(個數,順序,類型)
3.什么時候我們會考慮使用“方法覆蓋”呢?
子類繼承父類之后,當繼承過來的方法無法滿足當前子類的業務需求時,子類有權利對這個方法進行重新編寫,又叫“方法的覆蓋”。
方法覆蓋又叫做:方法重寫,英文單詞:Override。
4.方法覆蓋的條件是什么?
(1)兩個類必須有繼承關系;
(2)重寫之后的方法和之前的方法具有相同的返回值類型,相同的方法名,相同的形式參數列表;
(3)重寫方法的訪問權限不能比之前方法的權限更低,可以更高;
(4)重寫方法的拋出異常數不能比之前方法的拋出異常數更多,可以更少。
5.方法覆蓋的注意事項:
(1)方法覆蓋只是針對方法,和屬性無關;
(2)父類的私有方法無法覆蓋;
(3)構造方法不能被繼承,所以構造方法也不能被覆蓋;
(4)方法覆蓋只是針對實例方法,靜態方法覆蓋沒有意義。
(5)書寫方法覆蓋時,建議使用復制粘貼父類的方法到子類,手動寫可能會失誤。
測試代碼:
public?class?MyTest?{
public?static?void?main(String[]?args)?{
Cat?c1?=?new?Cat();
c1.run();??//輸出:貓在走貓步!!!
Bird?b1?=?new?Bird();?
b1.run();??//輸出:鳥兒在飛翔!!!
?
}}class?Animal?{
//?移動方法,訪問權限為protected,比public低
protected?void?run()?{?
System.out.println("動物在移動!!!");
}}class?Cat?extends?Animal?{
//改方法的訪問權限不能比原繼承方法的訪問權限低,可以更高
public?void?run()?{
System.out.println("貓在走貓步!!!");
//?這里不能拋出異常,因為拋出異常數=1?>?繼承方法的拋出異常數
/*try?{
????throw?new?Exception("拋出異常");
}?catch?(Exception?e)?{
????e.printStackTrace();
????System.out.println("捕獲異常");
}*/
}}class?Bird?extends?Animal?{
public?void?run()?{
System.out.println("鳥兒在飛翔!!!");
}}
以上就是動力節點java培訓機構的小編針對“編程基礎之Java中使用方法覆蓋的作用”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習