一、Java重寫與重載的區別
1、含義不同
方法重寫指的是在子類中重新定義一個與父類方法同名、參數列表相同的方法。子類中的方法覆蓋了父類中的同名方法,調用時會執行子類中的方法。方法重載指的是在同一個類中定義多個方法,它們的方法名相同,但是參數列表不同。
2、參數列表不同
方法重載的參數列表必須不同,可以是參數類型不同,參數個數不同或者參數順序不同。而方法重寫的參數列表必須和父類方法的參數列表完全一致,包括參數類型、個數、順序等。
3、返回值限制不同
方法重載可以有不同的返回值類型,但是不能只有返回值類型不同,其余參數相同的方法。而方法重寫必須和父類方法具有相同的返回值類型,或者是其子類的返回值類型。
4、方法調用不同
方法重載是在編譯時確定的,根據參數的不同,選擇不同的方法進行調用。而方法重寫是在運行時確定的,當父類引用指向子類對象時,調用同名方法時會執行子類中的方法。
5、繼承關系不同
方法重載是在同一個類中定義多個方法,它們是平級關系,沒有繼承關系。而方法重寫是在子類中對父類方法進行覆蓋,有繼承關系。
6、注解不同
方法重載可以使用相同或不同的注解進行修飾,而方法重寫必須使用@override注解,否則編譯器會發出警告。