Java是一種面向對象的編程語言,其中重載和覆蓋是實現多態性的兩種重要機制。
重載是指在一個類中定義多個方法名稱相同但參數不同的方法。例如:
public class Example { public void print(int num) { System.out.println("參數為整數:" + num); } public void print(String str) { System.out.println("參數為字符串:" + str); } }
上面的代碼中,print方法有兩個版本:一個參數為整數,一個參數為字符串。在調用時,Java會根據傳入的參數類型自動選擇合適的版本。
覆蓋是指子類重新定義了父類中已有的方法。例如:
public class Animal { public void eat() { System.out.println("動物吃東西"); } } public class Cat extends Animal { public void eat() { System.out.println("貓吃魚"); } }
上面的代碼中,Cat類繼承自Animal類,并重寫了其中的eat方法。當我們對Cat類的實例調用eat方法時,會自動調用子類中的版本。
總的來說,重載和覆蓋都是Java中實現多態性的手段。重載用在同一個類內,覆蓋用在繼承關系中的父子類之間。