PHP中overload與override的區(qū)別
override(重寫(xiě),覆蓋)
1、方法名、參數(shù)、返回值相同。
2、子類(lèi)方法不能縮小父類(lèi)方法的訪(fǎng)問(wèn)權(quán)限。
3、子類(lèi)方法不能拋出比父類(lèi)方法更多的異常(但子類(lèi)方法可以不拋出異常)。
4、存在于父類(lèi)和子類(lèi)之間。
5、方法被定義為final不能被重寫(xiě)。
overload(重載,過(guò)載)
1、參數(shù)類(lèi)型、個(gè)數(shù)、順序至少有一個(gè)不相同。
2、不能重載只有返回值不同的方法名。
3、存在于父類(lèi)和子類(lèi)、同類(lèi)中。
方法的重寫(xiě)(Overriding)和重載(Overloading)是Java多態(tài)性的不同表現(xiàn)。
重寫(xiě)(Overriding)是父類(lèi)與子類(lèi)之間多態(tài)性的一種表現(xiàn),而重載(Overloading)是一個(gè)類(lèi)中多態(tài)性的一種表現(xiàn)。
如果在子類(lèi)中定義某方法與其父類(lèi)有相同的名稱(chēng)和參數(shù),我們說(shuō)該方法被重寫(xiě) (Overriding)。子類(lèi)的對(duì)象使用這個(gè)方法時(shí),將調(diào)用子類(lèi)中的定義,對(duì)它而言,父類(lèi)中的定義如同被"屏蔽"了.
如果在一個(gè)類(lèi)中定義了多個(gè)同名的方法,它們或有不同的參數(shù)個(gè)數(shù)或有不同的參數(shù)類(lèi)型或有不同的參數(shù)次序,則稱(chēng)為方法的重載(Overloading)。不能通過(guò)訪(fǎng)問(wèn)權(quán)限、返回類(lèi)型、拋出的異常進(jìn)行重載.
1. Override 特點(diǎn)
1、覆蓋的方法的標(biāo)志必須要和被覆蓋的方法的標(biāo)志完全匹配,才能達(dá)到覆蓋的效果;
2、覆蓋的方法的返回值必須和被覆蓋的方法的返回一致;
3、覆蓋的方法所拋出的異常必須和被覆蓋方法的所拋出的異常一致,或者是其子類(lèi);
4、被覆蓋的方法不能為private,否則在其子類(lèi)中只是新定義了一個(gè)方法,并沒(méi)有對(duì)其進(jìn)行覆蓋。
2.Overload 特點(diǎn)
1、在使用重載時(shí)只能通過(guò)不同的參數(shù)樣式。例如,不同的參數(shù)類(lèi)型,不同的參數(shù)個(gè)數(shù),不同的參數(shù)順序(當(dāng)然,同一方法內(nèi)的幾個(gè)參數(shù)類(lèi)型必須不一樣,例如可以是fun(int, float), 但是不能為fun(int, int));
2、不能通過(guò)訪(fǎng)問(wèn)權(quán)限、返回類(lèi)型、拋出的異常進(jìn)行重載;
3、方法的異常類(lèi)型和數(shù)目不會(huì)對(duì)重載造成影響;
4、對(duì)于繼承來(lái)說(shuō),如果某一方法在父類(lèi)中是訪(fǎng)問(wèn)權(quán)限是priavte,那么就不能在子類(lèi)對(duì)其進(jìn)行重載,如果定義的話(huà),也只是定義了一個(gè)新方法,而不會(huì)達(dá)到重載的效果。
以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持腳本之家!
- PHP和JAVA中的重載(overload)和覆蓋(override) 介紹
- PHP面相對(duì)象中的重載與重寫(xiě)
- PHP面向?qū)ο缶幊讨钊肜斫夥椒ㄖ剌d與方法覆蓋(多態(tài))
- php面向?qū)ο笕ヂ?(八)重載新的方法
- php面向?qū)ο蟮姆椒ㄖ剌d兩種版本比較
- PHP中子類(lèi)重載父類(lèi)的方法【parent::方法名】
- php繼承中方法重載(覆蓋)的應(yīng)用場(chǎng)合
- PHP使用方法重載實(shí)現(xiàn)動(dòng)態(tài)創(chuàng)建屬性的get和set方法
- PHP面向?qū)ο蟪绦蛟O(shè)計(jì)(OOP)之方法重寫(xiě)(override)操作示例
相關(guān)文章
PHP簡(jiǎn)單實(shí)現(xiàn)正則匹配省市區(qū)的方法
這篇文章主要介紹了PHP簡(jiǎn)單實(shí)現(xiàn)正則匹配省市區(qū)的方法,涉及php正則匹配、判斷、運(yùn)算等相關(guān)操作技巧,需要的朋友可以參考下2018-04-04
PHP中spl_autoload_register()函數(shù)用法實(shí)例詳解
這篇文章主要介紹了PHP中spl_autoload_register()函數(shù)用法,結(jié)合實(shí)例形式分析了__autoload函數(shù)及spl_autoload_register函數(shù)的相關(guān)使用技巧,需要的朋友可以參考下2016-07-07
PHP goto語(yǔ)句簡(jiǎn)介和使用實(shí)例
這篇文章主要介紹了什么是PHP goto語(yǔ)句和goto操作符的使用實(shí)例,需要的朋友可以參考下2014-03-03
PHP性能優(yōu)化 產(chǎn)生高度優(yōu)化代碼
PHP是一種在服務(wù)器端執(zhí)行的腳本語(yǔ)言,它開(kāi)發(fā)了世界上許多知名的網(wǎng)站,包括雅虎和Facebook等。下面介紹6條PHP代碼、性能優(yōu)化的技巧。2011-07-07
Laravel中使用FormRequest進(jìn)行表單驗(yàn)證方法及問(wèn)題匯總
Laravel 5.0 帶來(lái)了FormRequests, 這是一種特殊的類(lèi)型, 用于在提交表單時(shí)進(jìn)行數(shù)據(jù)的檢查和驗(yàn)證. 每個(gè)FormRequest類(lèi)至少包含一個(gè)rules()方法, 這個(gè)方法返回一組驗(yàn)證規(guī)則. 除此之外還必須包含一個(gè)authorize()方法, 該方法返回一個(gè)布爾值, 代表是否允許用戶(hù)執(zhí)行本次請(qǐng)求.2016-06-06
php實(shí)現(xiàn)在服務(wù)器端調(diào)整圖片大小的方法
這篇文章主要介紹了php實(shí)現(xiàn)在服務(wù)器端調(diào)整圖片大小的方法,實(shí)例分析了imageResizer與loadimage操作圖片的相關(guān)技巧,需要的朋友可以參考下2015-06-06
PHP Socket網(wǎng)絡(luò)操作類(lèi)定義與用法示例
這篇文章主要介紹了PHP Socket網(wǎng)絡(luò)操作類(lèi)定義與用法,結(jié)合實(shí)例形式分析了php socket網(wǎng)絡(luò)操作類(lèi)的定義及結(jié)合ajax發(fā)送查詢(xún)請(qǐng)求等相關(guān)使用技巧,需要的朋友可以參考下2017-08-08

