重寫(覆蓋/overwrite):是發生在子類和父類之間的,子類重寫父類的方法。
規則:方法名字,方法的引數(引數的個數,型別,順序),返回型別必須一樣,異常不能被擴大,可見性不能縮小。
重寫方法只能存在於具有繼承關係中,重寫方法只能重寫父類非私有的方法。
子類可以和父類用相同名字的靜態方法,方法名,引數型別都一樣,很像過載,但不是過載,不存在多型。
解釋為什麼異常不能被擴大,可見性不能被縮小?
因為如果子類丟擲比父類更大的異常,那麼在多型的時候(即父類的引用指向子類的物件),父類就不能捕獲子類丟擲的異常了。所有,異常不能被擴大。
可見性不能被縮小是因為,也是在多型的時候,如果子類的方法的可見性連父類都看不到了,那麼父類的引用就不能指向子類的物件了。所以,可見性不能被縮小。
過載:發生在本類中。兩個方法的名稱一樣,但引數列表必須不一樣。引數列表包括:(引數的型別,個數,順序)
規則:1、必須具有不同的引數列表;
2、可以有不同的返回型別,只要引數列表不同就可以了;
3、可以有不同的訪問修飾符;
4、可以丟擲不同的異常;
java中關於過載和重寫
在物件導向的學習中,對於過載和重寫我頭疼了好一陣,現在稍微明白了。發表一下個人理解,望大神指點錯誤!對於建構函式的過載,其實就是對建構函式的初始化,用個例子表示 public class test string name int age 此為函式定義的變數 public test string na...
Java中關於過載和重寫
基本的一些點呀 方法過載 1.同乙個類中 2.方法名相同,引數列表不同 引數順序,個數,型別 方法返回值任意 3.訪問修飾符任意 4.與方法的引數名無關 方法重寫 1.有繼承關係的子類中 2.方法名相同,引數列表相同 引數順序,個數,型別 方法返回值相同 3.訪問修飾符需要大於或者扽與父類的訪問範圍...
Java中重寫 過載通俗的理解
子類繼承父類,擁有父類的方法和屬性後,子類在保證繼承的方法在方法名和引數列不變的情況下,對方法的內部實現進行重新定義,這種現象就是方法重寫 重寫比較側重於父子差異 示例父親 father類 名下有一套三層樓房,後來由兒子 son類 繼承,繼承之後碰巧拆遷,三層樓房在兒子這裡變成了拆遷款,這套房子 h...