1.重寫(Override)
從字面上看哑梳,重寫就是 重新寫一遍的意思盯质。其實就是在子類中把父類本身有的方法重新寫一遍。子類繼承了父類原有的方法彪标,但有時子類并不想原封不動的繼承父類中的某個方法倍权,所以在方法名,參數(shù)列表捞烟,返回類型(除過子類中方法的返回值是父類中方法返回值的子類時)都相同的情況下薄声, 對方法體進行修改或重寫,這就是重寫题画。但要注意子類函數(shù)的訪問修飾權(quán)限不能少于父類的默辨。
重寫 總結(jié):
1.發(fā)生在父類與子類之間
2.方法名,參數(shù)列表苍息,返回類型(除過子類中方法的返回類型是父類中返回類型的子類)必須相同
3.訪問修飾符的限制一定要大于被重寫方法的訪問修飾符(public>protected>default>private)
4.重寫方法一定不能拋出新的檢查異乘跣遥或者比被重寫方法申明更加寬泛的檢查型異常
2.重載(Overload)
在一個類中壹置,同名的方法如果有不同的參數(shù)列表(參數(shù)類型不同、參數(shù)個數(shù)不同甚至是參數(shù)順序不同)則視為重載表谊。同時蒸绩,重載對返回類型沒有要求,可以相同也可以不同铃肯,但不能通過返回類型是否相同來判斷重載患亿。
重載 總結(jié):
1.重載Overload是一個類中多態(tài)性的一種表現(xiàn)
2.重載要求同名方法的參數(shù)列表不同(參數(shù)類型,參數(shù)個數(shù)甚至是參數(shù)順序)
3.重載的時候押逼,返回值類型可以相同也可以不相同步藕。無法以返回型別作為重載函數(shù)的區(qū)分標準
重載與重寫的區(qū)別:
方法的重載和重寫都是實現(xiàn)多態(tài)的方式,區(qū)別在于前者實現(xiàn)的是編譯時的多態(tài)性挑格,而后者實現(xiàn)的是運行時的多態(tài)性咙冗。重載發(fā)生在一個類中,同名的方法如果有不同的參數(shù)列表(參數(shù)類型不同漂彤、參數(shù)個數(shù)不同或者二者都不同)則視為重載雾消;重寫發(fā)生在子類與父類之間,重寫要求子類被重寫方法與父類被重寫方法有相同的參數(shù)列表挫望,有兼容的返回類型立润,比父類被重寫方法更好訪問,不能比父類被重寫方法聲明更多的異常(里氏代換原則)媳板。重載對返回類型沒有特殊的要求桑腮,不能根據(jù)返回類型進行區(qū)分。