天天看點

override 和overload 的差別

override(重寫):

1.方法名、參數、傳回值相同;(Object 最高父類中有相同方法名方法)

2 .子類方法通路修飾符權限範圍要大于或等于父類通路修飾符權限範圍;

3 .子類方法不能抛出比父類方法更多的異常(子類方法可以不抛出異常);

4. Override 隻發生在父類和子類之間;

5. 方法被定義為final 不能重寫;

6. 被覆寫的方法不能為private,否則子類隻是新定義了一個方法,不能被覆寫。

overload(重載):

1.參數類型、個數、順序至少一個不同;

2.方法的異常類型和數目

3.與通路修飾符和傳回值類型無關

4.發生在同一個類中

例1:重寫toString 方法

重寫後的toString 方法為:

public String toString() {
return "Computer [brand=" + brand + ", price=" + price + "]";
}
重寫的toString 的父類在Object 類中,Object 是所有子類的直接父類或間接父類,即是
所有類的超類。Object 是Java 語言中唯一一個沒有父類的類。
Object 類的toString 方法為:
public String toString() {
return getClass().getName() + "@" +
Integer.toHexString(hashCode());
}