Java中的重載和重寫是非常常見的兩種方法。雖然它們的名稱相似,但它們的功能卻完全不同。
重載是指在同一個類中,可以有多個同名但參數(shù)不同的方法。這樣做的好處是可以讓方法名稱更加通用,同時也可以提高代碼復(fù)用率。調(diào)用重載方法時,由編譯器根據(jù)傳入的參數(shù)類型和個數(shù)來確定調(diào)用哪一個方法。
public void print(int num){ System.out.println("print int number: "+num); } public void print(String str){ System.out.println("print string: "+str); } public void print(int num, String str){ System.out.println("print int and string: "+num+" "+str); } //調(diào)用 print(1); //輸出:print int number: 1 print("hello"); //輸出:print string: hello print(2, "world"); //輸出:print int and string: 2 world
而重寫是指子類重新定義了父類中定義的方法。子類可以保留方法名稱、參數(shù)列表、返回類型等信息,但卻可以重新編寫方法體,使得方法的實現(xiàn)方式和父類中的實現(xiàn)方式不同。調(diào)用重寫方法時,由運行時態(tài)的對象確定調(diào)用哪一個方法。
public class Animal { public void move(){ System.out.println("Animal can move"); } } public class Dog extends Animal { public void move(){ System.out.println("Dog can run and walk"); } } //調(diào)用 Animal animal = new Animal(); Animal dog = new Dog(); animal.move(); //輸出:Animal can move dog.move(); //輸出:Dog can run and walk
總的來說,重載和重寫都是Java中非常常見且重要的特性。正確地使用它們可以提高代碼質(zhì)量和效率。