Java 中方法隱藏與方法重寫之間的差異是什麼?
當父類和子類都包含相同例項方法(包括引數)時,呼叫時,子類的方法會覆蓋父類的方法。
在這個示例中,父類和子類都有簽名相同(方法名稱和引數)的方法,當我們嘗試從子類呼叫此方法時,子類方法會覆蓋父類中的方法並得到執行。
舉例
class Super{ public void sample(){ System.out.println("Method of the Super class"); } } public class MethodOverriding extends Super { public void sample(){ System.out.println("Method of the Sub class"); } public static void main(String args[]){ MethodOverriding obj = new MethodOverriding(); obj.sample(); } }
輸出
Method of the Sub class
當父類和子類都包含相同的方法(包括引數),並且它們都是靜態方法時,呼叫時,子類的方法會隱藏父類的方法。
舉例
class Super{ public static void sample(){ System.out.println("Method of the Super class"); } } public class MethodHiding extends Super { public static void sample(){ System.out.println("Method of the Sub class"); } public static void main(String args[]){ MethodHiding obj = new MethodHiding(); obj.sample(); } }
輸出
Method of the Sub class
廣告