您好,登錄后才能下訂單哦!
實(shí)踐目標(biāo):
1、final類的定義格式為: final class 類名{}
<?php //定義“人”類 final class Human{ public function eat(){ echo "Human 中的eat方法被執(zhí)行了<br/>"; } } $human = new Human(); $human->eat(); ?>
運(yùn)行結(jié)果為:
Human 中的eat方法被執(zhí)行了
2、案例二:
實(shí)踐目標(biāo):
1、final方法的定義格式為:final public(或者protected) function 方法名稱(參數(shù).....){}
<?php class Human{ final public function eat(){ echo "Human 中的 類型為final的eat方法被執(zhí)行了<br/>"; } } $human = new Human(); $human->eat(); ?>
運(yùn)行結(jié)果為:
Human 中的 類型為final的eat方法被執(zhí)行了
3、案例三:
實(shí)踐目標(biāo):
1、類一旦被定義成final類,就不能被繼承,也就是它就不能有子類了
<?php //定義“人”類 final class Human{ public function eat(){ echo "Human 中的 類型為final的eat方法被執(zhí)行了<br/>"; } } //定義Nba球員類 class NbaPlayer extends Human{ public function eat(){ } } ?>
運(yùn)行結(jié)果為:
Fatal error: Class NbaPlayer may not inherit from final class (Human) in D:\E-class\class-code\classing\index.php on line 14
4、案例四:
實(shí)踐目標(biāo):
1、方法一旦被定義成final方法,就不能被子類重寫(xiě)
<?php //定義“人”類 class Human{ final public function eat(){ echo "Human 中的 類型為final的eat方法被執(zhí)行了<br/>"; } } //定義Nba球員類 class NbaPlayer extends Human{ public function eat(){ echo "NbaPlayer中的eat方法,重寫(xiě)了父類的eat方法<br/>"; } } ?>
運(yùn)行結(jié)果為:
Fatal error: Cannot override final method Human::eat() in D:\E-class\class-code\classing\index.php on line 14
問(wèn)題:根據(jù)多年的經(jīng)驗(yàn)總結(jié),很多數(shù)據(jù)的操作方法其實(shí)都是可以被復(fù)用的,除了在一個(gè)項(xiàng)目里用,很多項(xiàng)目都可以用,而且一個(gè)項(xiàng)目的很多地方都可以復(fù)用,所以打算把這些通用的方法都封裝到一個(gè)類中,但是這個(gè)類沒(méi)必要有子類,里面的方法我也不想讓它被重寫(xiě),該怎么做?
思路分析:
1.創(chuàng)建一個(gè)類,里面包含通常的數(shù)據(jù)操作方法
2.因?yàn)椴幌M惐焕^承,所以結(jié)合final的作用,我們可以把類定義成final類
3.類一旦定義成final類了,里面的方法自然就不會(huì)被重寫(xiě)了,因?yàn)闆](méi)有了子類,又怎么可以在子類中去重寫(xiě)呢
具體代碼如下:
<?php final class MyDataOpClass{ public function abs(){ //求絕對(duì)值 } //產(chǎn)生隨機(jī)數(shù) public function rand(){ echo "產(chǎn)生隨機(jī)數(shù)方法"; } //獲取數(shù)組中的最大值 public function getMax($numArr){ } //獲取數(shù)組中的最小值 public function getMin($numArr){ } //其他方法就此省略 } $mymath = new MyDataOpClass(); $mymath->rand(); ?>
運(yùn)行結(jié)果如下:
產(chǎn)生隨機(jī)數(shù)方法
說(shuō)明:這個(gè)例子有點(diǎn)簡(jiǎn)單,但是希望大家注意自己的思路分析,要盡可能的準(zhǔn)確清晰
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。