方法重載 overloading 的要求:
一、方法必須同名
二、參數必須不同。 參數不同包括參數類型不同,參數個數不同,只要有一種不同就可以了
三、返回值可以相同或不同。在有多個同名方法的情況下,是根據參數不同,選擇那個方法調用,而不是返回值
方法覆蓋 overridden 的要求:
1)發生在父子類中;
2)同名、同參、同返回值
3)訪問權限跟父類相同或更寬;不能比父類更封閉;例如父類中有一個 public void show(); 在子類中有一個方法覆蓋:private void show(); 就會出錯
4)子類方法拋出異常的類型不能比父類方法更寬泛;例如父類中有一個 public void show() throws IOException; 在子類中有一個方法覆蓋:private void show() throws Exception; 就會出錯
就方法覆蓋的第3)條可以理解為兒子必須比老子更開放
第4)條可以理解為兒子必須比老子范的錯誤更小
這就叫進步啊
ExtJS教程-
Hibernate教程-
Struts2 教程-
Lucene教程