方法重寫(overriding):
1、也叫子類的方法覆蓋父類的方法,要求返回值、方法名和參數都相同。
2、子類拋出的異常不能超過父類相應方法拋出的異常。(子類異常不能超出父類異常)
3、子類方法的的訪問級別不能低於父類相應方法的訪問級別(子類訪問級別不能低於父類訪問級別)
方法重載(overloading):重載是在同一個類中的兩個或兩個以上的方法,擁有相同的方法名,但是參數卻不相同,方法體也不相同,最常見的重載的例子就是類的構造函數,可以參考API幫助文檔看看類的構造方法
/** 方法重寫(Overriding Method */ class OverridingMethod { public static void main(String[] args) { HomeDog hd = new HomeDog("阿黃"); hd.desc(); } } //基類 class Dog { protected String name; public Dog(String name){ this.name = name; } protected void desc(){ System.out.println("I'm a dog"); } } //子類 class HomeDog extends Dog { public HomeDog(String name){ super(name); } //重寫父類的方法 public void desc(){ System.out.println("這是一只狗,它的名字是"+this.name); } }
輸出結果為:這是一只狗,它的名字是阿黃
可見,調用的是子類中的desc()方法,而不是父類的desc,這就是方法的重寫