在Java中,重載(overloading)和重寫(overriding)是兩個不同的概念,它們的應(yīng)用場景也不同。
重載是指在同一個類中定義了多個方法,它們的方法名相同但參數(shù)列表不同。重載的目的是方便程序員,使得程序代碼更加簡潔,更易讀懂。
重寫是指子類重寫了父類的方法,方法名和參數(shù)列表都相同。重寫的目的是為了改變父類方法的行為,實現(xiàn)多態(tài)性。
下面是一些示例代碼:
重載的例子:
public?class?OverloadExample?{????public?void?print(int?i)?{????????System.out.println("Integer:?"?+?i);????}????????public?void?print(double?d)?{????????System.out.println("Double:?"?+?d);????}????????public?void?print(String?s)?{????????System.out.println("String:?"?+?s);????}}//?在其他類中使用?OverloadExample?中的方法OverloadExample?oe?=?new?OverloadExample();oe.print(1);oe.print(2.0);oe.print("hello");
上述代碼中,OverloadExample 類中定義了三個方法,分別使用了不同的參數(shù)類型。在其他類中,可以通過對象oe調(diào)用這些方法,Java會根據(jù)傳入的參數(shù)類型選擇合適的方法進行調(diào)用。
重寫的例子:
public?class?Animal?{????public?void?speak()?{????????System.out.println("I?am?an?animal");????}}public?class?Cat?extends?Animal?{????@Override????public?void?speak()?{????????System.out.println("I?am?a?cat");????}}//?在其他類中使用?Cat?中的方法Animal?animal?=?new?Cat();animal.speak();
上述代碼中,Animal類中定義了一個speak方法,Cat類繼承了Animal類并重寫了speak方法。在其他類中,可以創(chuàng)建一個Cat對象,并將其賦值給Animal類型的變量animal。調(diào)用animal的speak方法時,實際上調(diào)用的是 Cat類中重寫的speak方法。這就體現(xiàn)了多態(tài)性的特點。
Copyright ? 2013-2021 河南云和數(shù)據(jù)信息技術(shù)有限公司 豫ICP備14003305號 ISP經(jīng)營許可證:豫B-20160281