中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP中面向對象的Final關鍵字使用方法

發布時間:2020-05-25 20:47:39 來源:億速云 閱讀:249 作者:鴿子 欄目:編程語言

1、案例一:

實踐目標:

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

到目前為止,我們應該對final有了個清晰的了解,接下來學以致用,用我們學到的這個知識點來解決如下問題

問題:根據多年的經驗總結,很多數據的操作方法其實都是可以被復用的,除了在一個項目里用,很多項目都可以用,而且一個項目的很多地方都可以復用,所以打算把這些通用的方法都封裝到一個類中,但是這個類沒必要有子類,里面的方法我也不想讓它被重寫,該怎么做?

思路分析:

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();
?>

運行結果如下:

產生隨機數方法

說明:這個例子有點簡單,但是希望大家注意自己的思路分析,要盡可能的準確清晰

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

刚察县| 施甸县| 吉林市| 开阳县| 浪卡子县| 汽车| 呼图壁县| 石楼县| 嘉峪关市| 华坪县| 建德市| 黔东| 康平县| 昌都县| 黎川县| 麦盖提县| 广水市| 耿马| 五河县| 铜梁县| 姜堰市| 安宁市| 乌拉特前旗| 来宾市| 苗栗市| 康保县| 牡丹江市| 大新县| 雷州市| 萍乡市| 广饶县| 乳山市| 巨鹿县| 诸暨市| 观塘区| 榕江县| 琼结县| 垦利县| 延边| 鄂州市| 白城市|