1. 程式人生 > >JAVA:方法重寫和方法過載的區別

JAVA:方法重寫和方法過載的區別

                                             過載                  

定義同一類中兩個或者多個方法的重寫

規則:                         

方法名                 相同

引數列表             不同 (個數,型別,引數順序)

返回型別              可以相同也可以不同

方法的返回型別不同不足以成為方法的過載

過載是發生在

編譯時的,因為編譯器可以 根據引數的型別來選擇使用那個方法

                    

   

 

 

 

 

                                               重寫

定義:有繼承關係在子類中發生

規則:

方法名                                        相同
引數列表                                     相同
返回值型別                                 可以相同也可以是原型別的子型別
訪問性                                         重寫方法不能比原方法訪問性差
異常                                            重寫方法不能比原方法丟擲異常多
final型別                                     被final修飾的不能重寫
private                                        被private修飾的不能重寫

 static                                         被static修飾的不能重寫

重寫發生在執行時,因為編譯期編譯器不知道並且沒辦法確定該去呼叫哪個方法,JVM會在程式碼執行的時候做出決定

過載和重寫的不同:

  過載 重寫
使用條件 同一類 繼承關係,子類中
引數列表 不同 相同
返回型別 可同可不同 相同
訪問許可權 無要求 有特殊要求,見規則
次數限制 過載多次 父類方法只能被子類重寫一次 
作用時間 編譯期 執行期