方法重載 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教程