在Java編程中,隱藏和重寫是兩個重要的概念,通常用于實現多態性。下面將對這兩個概念進行簡單的介紹。
隱藏
在Java中,如果子類中的某個方法與父類中的方法同名,參數列表也相同,那么子類方法會隱藏父類方法,即只能訪問子類方法,而不能訪問父類方法。這種行為被稱為方法隱藏或者方法重載。
重寫
重寫是指子類中的方法與父類中的方法同名,但是參數列表卻不同,子類方法可以擁有自己的新的實現。重寫時,訪問修飾符不能少于父類中的方法,而不能增加。在執行時,自動調用子類的方法,而不是父類的方法,這種行為被稱為方法的重寫或者方法覆蓋。
需要注意的是,重寫與隱藏的方法名相同,但參數列表不同。
public class Parent { public void methodOne(int a) { System.out.println(a); } public void methodTwo() { System.out.println("Parent Method"); } } public class Child extends Parent { public void methodOne(double b) { System.out.println(b); } public void methodTwo() { System.out.println("Child Method"); } } public class MainClass { public static void main(String[] args) { Parent obj1 = new Parent(); obj1.methodOne(10); //Output : 10 obj1.methodTwo(); //Output : Parent Method Child obj2 = new Child(); obj2.methodOne(10.0);//Output : 10.0 obj2.methodTwo(); //Output : Child Method } }
從上面的代碼可以看出,子類Child中methodOne和父類Parent中的methodOne方法具有相同的名稱,但是參數列表不同。在調用時,不同的參數類型將決定執行哪個方法。