您好,登錄后才能下訂單哦!
這篇文章主要介紹“java重寫與重載的區別”,在日常操作中,相信很多人在java重寫與重載的區別問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”java重寫與重載的區別”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
指在一個類中定義多個同名的方法,但要求每個方法具有不同的參數的類型或參數的個數。
特點:
方法名相同,==參數列表不同==(參數個數,參數類型,參數順序)
返回值類型可以相同可以不同
可以拋出不同的異常
應用:
多用于構造方法的重載
class OverloadTest{ //重載時參數順序不同也可以,但前提時參數類型不同 public static void method(String s,int a){ System.out.println("方法1"); } public static void method(int a,String s){ System.out.println("方法2"); } //構造方法的重載應用較多 OverloadTest(int v,String s){ System.out.println("構造方法1"); } OverloadTest(String s,int v){ System.out.println("構造方法2"); } }
當子類繼承父類后,如果想要修改,可以用方法的重寫
特點:
方法名,參數列表相同
返回值類型相同
訪問限定符不可以比父類的被重寫方法的更嚴格,即子類的重寫方法被訪問的范圍與父類相同或者更廣,不可以更窄
不可以拋出新的受查異常或更廣泛的受查異常,可以拋出非受查異常
不可以重寫被final修飾的方法
不可以重寫被static修飾的方法
應用:
子類需要修改繼承自父類的方法時應用
class OverrideTest{ public void method(){ System.out.println("父類的方法"); } } class Son extends OverrideTest{ @Override//子類重寫父類方法時可以加上這個注解,自動幫你校驗重寫格式是否正確 public void method(){ System.out.println("子類重寫的方法"); } public static void methodB(){ System.out.println("子類的方法"); } } public class OverrideOrOverloadDemo { public static void main(String[] args) { new OverrideTest().method(); new Son().method(); OverrideTest ot = new Son(); // ot.methodB();//以引用為準,引用為OverrideTest,該類中的沒有方法methodB(),因此會報編譯錯誤 ot.method();//當子類重寫了父類的方法時,調用子類的重寫的方法 } }
運行結果:
到此,關于“java重寫與重載的區別”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。