Java是一種面向對象的編程語言,其中的重寫(Override)是一種很重要的概念。重寫是指子類繼承父類的方法,并且在子類中實現相同的方法名和參數列表,但是給予不同的實現方式,以達到特定的需求。重寫的方法和父類的方法擁有相同的名稱、參數列表、返回類型都必須相同。
// 父類 public class Animal { public void move() { System.out.println("動物可以移動"); } } // 子類 public class Dog extends Animal { public void move() { System.out.println("狗可以跑和走"); } } // 測試類 public class TestDog { public static void main(String args[]) { Animal a = new Animal(); Animal b = new Dog(); a.move(); b.move(); } }
上述代碼中,Animal類有一個可以移動的方法move(),而Dog類繼承了這個方法并重寫了它,變成了可以跑和走的方法。在測試類中利用多態性先創建了一個Animal對象并執行了move()方法,然后將Dog對象向上轉型為Animal對象并執行了move()方法。這就體現了方法的多態性,當運行結果顯示狗可以跑和走時,說明了重寫的效果。
與重寫類似的是,天天見也有類似的概念,叫做重載(Overload)。重載是指在同一個類中定義多個同名方法,但是參數列表不同,利用參數的不同來區分這些方法,可以讓同一個方法名字好記而且使用方便,增強了代碼的可讀性。
public class OverloadDemo { public void info() { System.out.println("1. 無參數的info方法"); } public void info(int age) { System.out.println("2. 重載的info方法, age參數:" + age); } public void info(String name) { System.out.println("3. 重載的info方法,name參數:" + name); } public void info(String name, int age) { System.out.println("4. 重載的info方法,name參數:" + name + ";age參數:" + age); } public static void main(String[] args) { OverloadDemo od = new OverloadDemo(); od.info(); od.info(30); od.info("張三"); od.info("李四", 40); } }
上述代碼中,定義了4個同名的方法,但是參數的類型和個數不同,即重載。在測試類中,調用了這4個方法分別輸出不同的信息。這就體現了方法的重載性,當運行結果顯示了對應方法的結果,說明了重載的效果。
上一篇css控制頁面字體樣式
下一篇css覆蓋但不顯示樣式