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

Java----方法過載和重寫的區別

      方法過載和重寫的區別

方法過載

 在同一個類中,出現多個方法名相同引數列表不同的方法。引數列表不同指引數列表中的引數個數或者是引數型別不同或者是引數的順序不同。注意:不能通過訪問許可權、返回型別、丟擲的異常進行過載。

注意:通過上面的這些例子可以看到,因為引數列表的不同或者是方法名不同,java虛擬機器才可以識別,呼叫相應的方法。

     從例子可以看到,這個程式在編譯的時候發生錯誤,說明java虛擬機器不能通過返回值型別區分不用的方法。

     返回值型別不能表示不同方法,其實是可以理解的,因為方法的返回值是在程式執行方法之後得到的結果,而在程式執行方法前,這個結果的型別是不確定的,所以不能用來表示不同的方法。

方法重寫

首先方法重寫只能發生在子類中,在子類中出現了方法和從父類中繼承的方法同名同參數同返回值型別的情況,這種叫做方法重寫。

方法過載和重寫的區別

在這裡要注意的是:在子類中重寫父類的方法時,方法的許可權不能降低。比如說在父類中方法是default(預設訪問許可權修飾符),那麼子類重寫了這個方法時,方法的訪問許可權不能低於父類中方法的訪問許可權,所以在子類中方法的訪問許可權可以使public,但是不能是private。