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