1. 程式人生 > 其它 >C#程式將物件轉為json

C#程式將物件轉為json

過載

過載指方法名稱相同,但引數型別個數不同,是行為水平方向不同實現。
對編譯器來說,方法名稱和引數列表組成了一個唯一鍵,稱為方法簽名,JVM 通過方法簽名決定呼叫哪種過載方法。(方法簽名不包括返回型別)
不管繼承關係如何複雜,過載在編譯時可以根據規則知道呼叫哪種目標方法,因此屬於靜態繫結。

JVM 在過載方法中選擇合適方法的順序:

  1. 精確匹配。
  2. 基本資料型別自動轉換成更大表示範圍。
  3. 自動拆箱與裝箱。
  4. 子類向上轉型。
  5. 可變引數。

重寫

重寫指子類實現介面或繼承父類時,保持方法簽名完全相同,實現不同方法體,是行為垂直方向不同實現。

元空間有一個方法表儲存方法資訊,如果子類重寫了父類的方法,則方法表中的方法引用會指向子類實現。
父類引用執行子類方法時無法呼叫子類存在而父類不存在的方法。

重寫方法訪問許可權不能變小,返回型別和丟擲的異常型別不能變大,必須加 @Override。

  • 子類與父類有符合覆寫規定的方法時,不加@Override 註解,也是能夠覆寫的,但是在實際使用時可能會產生一些疑問,到底是呼叫父類的方法還是子類覆寫後的方法呢。
  • 而加上註解能增加程式碼的可讀性,看到標籤就知道這是從父類重寫的方法,在呼叫時也將呼叫重寫後的方法。
  • 並且使用@Override可以準確判斷是否覆蓋成功。