PHP中overload與override的區(qū)別
override(重寫,覆蓋)
1、方法名、參數(shù)、返回值相同。
2、子類方法不能縮小父類方法的訪問權(quán)限。
3、子類方法不能拋出比父類方法更多的異常(但子類方法可以不拋出異常)。
4、存在于父類和子類之間。
5、方法被定義為final不能被重寫。
overload(重載,過載)
1、參數(shù)類型、個數(shù)、順序至少有一個不相同。
2、不能重載只有返回值不同的方法名。
3、存在于父類和子類、同類中。
方法的重寫(Overriding)和重載(Overloading)是Java多態(tài)性的不同表現(xiàn)。
重寫(Overriding)是父類與子類之間多態(tài)性的一種表現(xiàn),而重載(Overloading)是一個類中多態(tài)性的一種表現(xiàn)。
如果在子類中定義某方法與其父類有相同的名稱和參數(shù),我們說該方法被重寫 (Overriding)。子類的對象使用這個方法時,將調(diào)用子類中的定義,對它而言,父類中的定義如同被"屏蔽"了.
如果在一個類中定義了多個同名的方法,它們或有不同的參數(shù)個數(shù)或有不同的參數(shù)類型或有不同的參數(shù)次序,則稱為方法的重載(Overloading)。不能通過訪問權(quán)限、返回類型、拋出的異常進行重載.
1. Override 特點
1、覆蓋的方法的標志必須要和被覆蓋的方法的標志完全匹配,才能達到覆蓋的效果;
2、覆蓋的方法的返回值必須和被覆蓋的方法的返回一致;
3、覆蓋的方法所拋出的異常必須和被覆蓋方法的所拋出的異常一致,或者是其子類;
4、被覆蓋的方法不能為private,否則在其子類中只是新定義了一個方法,并沒有對其進行覆蓋。
2.Overload 特點
1、在使用重載時只能通過不同的參數(shù)樣式。例如,不同的參數(shù)類型,不同的參數(shù)個數(shù),不同的參數(shù)順序(當然,同一方法內(nèi)的幾個參數(shù)類型必須不一樣,例如可以是fun(int, float), 但是不能為fun(int, int));
2、不能通過訪問權(quán)限、返回類型、拋出的異常進行重載;
3、方法的異常類型和數(shù)目不會對重載造成影響;
4、對于繼承來說,如果某一方法在父類中是訪問權(quán)限是priavte,那么就不能在子類對其進行重載,如果定義的話,也只是定義了一個新方法,而不會達到重載的效果。
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!
相關(guān)文章
PHP常量使用的幾個需要注意的地方(謹慎使用PHP中的常量)
常量包含數(shù)字字母字符和下劃線,數(shù)字允許作為常量名。 常量名的所有字母必須大寫。類常量必須通過 const 定義為類的成員,強烈不鼓勵使用 define 定義的全局常量2014-09-09PHP實現(xiàn)動態(tài)執(zhí)行代碼的方法
這篇文章主要介紹了PHP實現(xiàn)動態(tài)執(zhí)行代碼的方法,涉及PHP中create_function函數(shù)的使用技巧,需要的朋友可以參考下2016-03-03php curl上傳、下載、https登陸實現(xiàn)代碼
這篇文章主要介紹了php curl上傳、下載、https登陸實現(xiàn)代碼,需要的朋友可以參考下2017-07-07php基于環(huán)形鏈表解決約瑟夫環(huán)問題示例
這篇文章主要介紹了php基于環(huán)形鏈表解決約瑟夫環(huán)問題,結(jié)合具體實例形式分析了php環(huán)形鏈表的定義及基于環(huán)形鏈表解決約瑟夫環(huán)的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下2017-11-11PHP實現(xiàn)的迪科斯徹(Dijkstra)最短路徑算法實例
這篇文章主要介紹了PHP實現(xiàn)的迪科斯徹(Dijkstra)最短路徑算法,簡單描述了迪科斯徹(Dijkstra)最短路徑算法的概念、功能并結(jié)合具體實例形式分析了php實現(xiàn)迪科斯徹(Dijkstra)最短路徑算法的相關(guān)步驟與操作技巧,需要的朋友可以參考下2017-09-09