一、方法重載
在Java中,一個類可以定義若干個方法,而這些方法的名稱相同,但是它們的參數不同。這就是方法重載,也稱為overloading。要實現方法重載,需要滿足以下三個條件:
1、方法名稱相同;
2、參數列表不同;
3、方法返回類型可以不同,但是參數列表必須不同。
下面是一個示例代碼:
public class MethodOverloadDemo { public void print(int i){ System.out.println("i is: " + i); } public void print(String str){ System.out.println("str is: " + str); } public void print(int i, String str){ System.out.println("i is: " + i + ", str is: " + str); } }
在這個示例中,我們定義了3個名為print的方法。第一個方法print接收一個整型參數i;第二個方法print接收一個字符串參數str;而第三個方法print接收一個整型參數和一個字符串參數。這三個方法名稱相同,但是參數列表不同,所以Java可以正確識別它們。
二、方法重寫
方法重寫也稱為方法覆蓋(overriding),是指一個子類中定義了一個與其父類的某個方法名稱、返回類型相同、參數列表也相同的方法,這種情況下,子類的方法將覆蓋其父類的方法。
方法重寫的條件:
1、方法名稱必須相同;
2、方法參數列表必須相同;
3、返回類型必須相同或更具體(Java允許在返回類型為基本數據類型時自動類型轉換);
4、訪問權限不能比父類中該方法的訪問權限更低,通俗點說,就是子類重寫的方法訪問權限必須要大於或等於父類的訪問權限。
下面是一個示例代碼:
public class Animal { public void eat() { System.out.println("animal eat"); } } public class Dog extends Animal { public void eat() { System.out.println("dog eat"); } }
在這個示例中,我們定義了兩個類:Animal和Dog。Dog繼承自Animal類,並重寫了它的eat方法。當我們調用Dog的eat方法時,輸出的是”dog eat”,而不是”animal eat”。
三、方法重寫和多態
方法重寫和多態密不可分。當子類對象調用重寫的方法時,Java會優先調用子類的方法。如果沒有重寫,則會調用父類的方法。
下面是一個示例代碼:
public class Animal { public void eat() { System.out.println("animal eat"); } } public class Dog extends Animal { public void eat() { System.out.println("dog eat"); } public static void main(String[] args) { Animal animal = new Dog(); animal.eat(); //輸出 "dog eat" } }
在這個示例中,我們將一個Dog對象賦值給一個Animal類型的變量。當我們調用animal的eat方法時,輸出的是”dog eat”。這就是多態的體現。
四、總結
方法重載和方法重寫是Java中兩個重要的概念,在開發中都有着廣泛的應用。方法重載可以在一個類中定義多個同名的方法,從而提高代碼的可讀性和復用性;方法重寫則是在子類中對父類的方法進行重新實現,根據需要對方法進行擴展和修改。
原創文章,作者:JGZL,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/140879.html