關鍵區別——java中重載與重寫
面向對象編程(OOP)是軟件開發中的一個主要範式。它是一種使用類和對象設計程序的方法。班級就是藍圖。它描述了對象中應該包含的內容。或者應該定義對象的屬性。因此,對象是類的實例。這些對象與其他對象通信。OOP的一個主要概念是多態性。它是一個對象以多種方式表現的能力。多態性分為重載和重寫兩部分。本文將在Java中討論這兩者之間的區別。Java中重載和重寫之間的關鍵區別在於,重載是使用不同的實現創建多個同名方法的能力,重寫是為超類中已經存在的子類方法提供一個實現。
目錄
1. 概述和主要區別
2. Java中的重載是什麼
3. Java中的重寫是什麼
4. Java中重載和重寫的相似性
5. 並排比較——以表格形式在Java中重載與重寫
6. 摘要
什麼是java中的重載(overloading in java)?
重載是使用不同的實現創建同名的多個方法的能力。請參閱下面的Java代碼。
根據上面的程序,類A包含兩個同名的方法。第一和法有兩個參數。第二和法有三個參數。當創建類型A的對象並調用sum(2,3)時,它將使用兩個參數sum(inta,intb)調用sum方法並返回5。當創建一個類型為A的對象並調用sum(2,3,4)時,它將使用三個參數調用另一個sum方法,即sum(inta,intb,intc)並返回9。
方法名稱相同,但參數數目不同。可以觀察到同一物體的行為不同。這個概念被稱為重載。它也被稱為靜態綁定或編譯時間多態性。
也可以使用不同的數據類型重載。請參閱下面的Java代碼。
根據上面的程序,類由兩個同名的方法組成。sum(inta,intb)方法接收兩個整數值。sum(double a double b)接收兩個double值。當創建類型A的對象並調用sum(2,3)時,它將調用sum(inta,intb)並返回值5。當調用sum(3.4,5.6)時,它將調用sum(double a double b)並返回值9.0。在本例中,方法具有相同的名稱,但變量類型不同。這也是超載。
什麼是在java中重寫(overriding in java)?
在Java中,可以使用已經存在的類構建子類。與其從頭創建新類,還可以使用已經存在的類的屬性和方法。現有類是超類,派生類是子類。當子類為已經在超類中的方法提供實現時,它被稱為重寫。請參閱以下Java程序。
根據上面的程序,類A有一個display()方法。類B是從類A擴展而來的,因此類B可以訪問類A的屬性和方法。類B具有具有特定實現的方法display()。當創建類型為A的對象並調用display方法時,它將給出輸出B。即使類A有display方法,它也會被類B display方法重寫。子類正在實現超類中已存在的方法。
這個概念是一種多態性,稱為覆蓋。它也被稱為後期綁定、動態綁定、運行時多態性。
超載(overloading)和在java中重寫(overriding in java)的共同點
- 兩者都是多態性的類型。
- 在重載和重寫中,方法具有相同的名稱。
超載(overloading)和在java中重寫(overriding in java)的區別
Java中的重載vs | |
Java中的重載是指使用不同的實現創建同名的多個方法的能力。 | Java中的重寫是為超類中已經存在的方法提供子類方法中的特定實現。 |
參數 | |
在重載中,方法具有相同的名稱,但參數數目不同或參數類型不同。 | 在重寫中,方法具有相同的名稱,並且參數必須相同。 |
主題 | |
類中發生重載。 | 重寫發生在具有繼承關係的兩個類中。 |
同義詞 | |
重載稱為編譯時間多態性。 | 重寫稱為運行時多態性。 |
總結 - 超載(overloading) vs. 在java中重寫(overriding in java)
多態性是面向對象編程中的一個主要概念。它提供了一個對象以多種方式表現的能力。這可以是重載或重寫。重載是編譯時多態性,重寫是運行時多態性。它們在軟件應用程序開發中很有用。重寫和重載之間的區別在於,重載是創建具有不同實現的同名多個方法的能力,重寫是為超類中已經存在的方法在子類方法中提供特定的實現。可以在Java中實現重載和重寫。
下載pdf重載vs java重寫
你可以下載這篇文章的PDF版本,並按照引文說明離線使用。請在此下載PDF版本Java中重載和重寫的區別