實踐目標:

創新互聯致力于互聯網網站建設與網站營銷,提供成都網站設計、成都網站建設、網站開發、seo優化、網站排名、互聯網營銷、微信平臺小程序開發、公眾號商城、等建站開發,創新互聯網站建設策劃專家,為不同類型的客戶提供良好的互聯網應用定制解決方案,幫助客戶在新的全球化互聯網環境中保持優勢。
1、final類的定義格式為: final class 類名{}
<?php
//定義“人”類
final class Human{
public function eat(){
echo "Human 中的eat方法被執行了<br/>";
}
}
$human = new Human();
$human->eat();
?>運行結果為:
Human 中的eat方法被執行了
2、案例二:
實踐目標:
1、final方法的定義格式為:final public(或者protected) function 方法名稱(參數.....){}
<?php
class Human{
final public function eat(){
echo "Human 中的 類型為final的eat方法被執行了<br/>";
}
}
$human = new Human();
$human->eat();
?>運行結果為:
Human 中的 類型為final的eat方法被執行了
3、案例三:
實踐目標:
1、類一旦被定義成final類,就不能被繼承,也就是它就不能有子類了
<?php
//定義“人”類
final class Human{
public function eat(){
echo "Human 中的 類型為final的eat方法被執行了<br/>";
}
}
//定義Nba球員類
class NbaPlayer extends Human{
public function eat(){
}
}
?>運行結果為:
Fatal error: Class NbaPlayer may not inherit from final class (Human) in D:\E-class\class-code\classing\index.php on line 14
4、案例四:
實踐目標:
1、方法一旦被定義成final方法,就不能被子類重寫
<?php
//定義“人”類
class Human{
final public function eat(){
echo "Human 中的 類型為final的eat方法被執行了<br/>";
}
}
//定義Nba球員類
class NbaPlayer extends Human{
public function eat(){
echo "NbaPlayer中的eat方法,重寫了父類的eat方法<br/>";
}
}
?>運行結果為:
Fatal error: Cannot override final method Human::eat() in D:\E-class\class-code\classing\index.php on line 14
問題:根據多年的經驗總結,很多數據的操作方法其實都是可以被復用的,除了在一個項目里用,很多項目都可以用,而且一個項目的很多地方都可以復用,所以打算把這些通用的方法都封裝到一個類中,但是這個類沒必要有子類,里面的方法我也不想讓它被重寫,該怎么做?
思路分析:
1.創建一個類,里面包含通常的數據操作方法
2.因為不希望類被繼承,所以結合final的作用,我們可以把類定義成final類
3.類一旦定義成final類了,里面的方法自然就不會被重寫了,因為沒有了子類,又怎么可以在子類中去重寫呢
具體代碼如下:
<?php
final class MyDataOpClass{
public function abs(){
//求絕對值
}
//產生隨機數
public function rand(){
echo "產生隨機數方法";
}
//獲取數組中的最大值
public function getMax($numArr){
}
//獲取數組中的最小值
public function getMin($numArr){
}
//其他方法就此省略
}
$mymath = new MyDataOpClass();
$mymath->rand();
?>運行結果如下:
產生隨機數方法
說明:這個例子有點簡單,但是希望大家注意自己的思路分析,要盡可能的準確清晰
名稱欄目:PHP中面向對象的Final關鍵字使用方法
分享路徑:http://www.yijiale78.com/article44/gddgee.html
成都網站建設公司_創新互聯,為您提供網站收錄、定制網站、、全網營銷推廣、網站導航、商城網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯