Java中的方法重寫和方法重載是非常常見的概念。它們都涉及到方法的重復使用和改變,但是它們的實現方式以及使用場景是有所不同的。
方法重載
public class OverloadDemo{ public void print(int i){ System.out.println("Printing integer: " + i); } public void print(String s){ System.out.println("Printing string: " + s); } public void print(double d){ System.out.println("Printing double: " + d); } } public static void main(String[] args) { OverloadDemo overloadDemo = new OverloadDemo(); overloadDemo.print(10); overloadDemo.print("Hello, World!"); overloadDemo.print(1.234); }
方法重載是指在同一個類中,方法名稱相同但參數類型或數量不同的情況。上面的代碼中就展示了方法重載的例子。OverloadDemo類中定義了三個print方法,分別用于打印整數、字符串和浮點數。在主方法中,我們通過傳遞不同類型的參數,調用了不同的print方法。
方法重載的跟具體參數相關,所以重載方法可以返回不同類型的值。
方法重寫
public class Parent { public void print() { System.out.println("I'm the parent class"); } } public class Child extends Parent { public void print() { System.out.println("I'm the child class"); } } public static void main(String[] args) { Parent parent = new Parent(); Child child = new Child(); parent.print(); child.print(); }
方法重寫是指在子類中定義了一個與父類中同名稱、同參數列表的方法,用來覆蓋父類中的方法。上面的代碼就是方法重寫的一個例子。Parent類中定義了一個print方法,在Child類中重寫了這個方法。
當程序在運行時調用Child類的print方法時,執行的是Child類中的方法,而不是Parent類中的方法。這就體現了方法的覆蓋。方法重寫還有一個特點,就是父類方法返回值類型和子類方法返回值類型可以不同,但是子類方法的返回值類型必須是父類方法返回值類型的子類型。
總結:Java中,方法重載和方法重寫都是方法的復用方式,但是它們的實現方式和使用場景是不同的。方法重載適用于可以使用不同的參數實現同一種功能的情況,而方法重寫則適用于父類與子類之間,子類需要實現自己的方法來覆蓋父類的實現細節的情況。
上一篇css布局個人簡歷
下一篇php oracle查詢