java是一門面向對象的編程語言,它提供了兩種常用的實現多態的方式:重載和重寫。雖然這兩種方式都可以實現多態,但是它們之間存在著一些不同之處。
重載是指一個類中定義了多個同名的方法,它們具有不同的參數列表。在調用這個方法時,編譯器會根據傳遞給該方法的參數的類型和數量來決定該調用哪個方法。這種方法稱為重載方法。例如:
public void show(int i){ System.out.println("show(int i)"); } public void show(String str){ System.out.println("show(String str)"); } public void show(int i, String str){ System.out.println("show(int i, String str)"); }
重寫是指在派生類中定義一個與基類中同名的方法,但是其實現方式不同。子類中的方法與基類中的方法具有相同的返回類型和參數列表。當程序調用這個方法時,執行的是子類中的方法,而不是父類中的方法。例如:
class Animal{ public void move(){ System.out.println("Animal move"); } } class Cat extends Animal{ public void move(){ System.out.println("Cat move"); } }
重載方法基于參數的類型和數量來判斷哪個方法被調用,而重寫方法基于具體的對象類型來判斷哪個方法被調用。此外,重載方法是一種靜態綁定,而重寫方法是一種動態綁定。在編譯器編譯的時候,會根據傳遞的參數來決定調用哪個方法;而在運行時,會動態地決定調用哪個方法。
總而言之,重載和重寫都是實現多態的方式,但是它們的實現方法和調用方式不同。應根據具體的需求選擇使用哪種方式來實現多態。
下一篇java求兩數和