• 首页   /  職場   /  
  • 在php中當不希望類中的某個方法被子類重寫時,我們可以設置這個方法為final方法,只需要在這個方法前加上final修飾符,其語法如“public final functiоn max($a,$b){}”。

    推薦:《PHP視頻教程》

    PHP 面向對象 final類與final方法

    final---用於類、方法前。


    final類---不可被繼承。

    final方法---不可被覆蓋。

    如果我們不希望一個類被繼承,我們使用final來修飾這個類。這個類將無法被繼承。

    比如我們設定的Math類,涉及了我們要做的數學計算方法,這些算法也沒有必要修改,也沒有必要被繼承,我們把它設置成final類型。

    <? 
    //聲明一個final類Math 
    final class Math
    { 
        public static $pi = 3.14; 
        public functiоn __toString()
        { 
            return "這是Math類。"; 
        } 
    } 
    $math = new Math(); 
    echo $math; 
    //聲明類SuperMath 繼承自 Math類 
    class SuperMath extends Math 
    { 
    } 
    //執行會出錯,final類不能被繼承。 
    ?>

    程序運行結果

    Fatal error: Class SuperMath may not inherit from final class (Math) in E:\PHPProjects\test.php on line 16

    如果不希望類中的某個方法被子類重寫,我們可以設置這個方法為final方法,只需要在這個方法前加上final修飾符。

    如果這個方法被子類重寫,將會出現錯誤。

    <? 
    //聲明一個final類Math 
    class Math
    { 
        public static $pi = 3.14; 
        public functiоn __toString()
        { 
            return "這是Math類。"; 
        } 
      public final functiоn max($a,$b)
      { 
          return $a > $b ? $a : $b ; 
      } 
    } 
    //聲明類SuperMath 繼承自 Math類 
    class SuperMath extends Math
    { 
        public final functiоn max($a,$b){} 
    } 
    //執行會出錯,final方法不能被重寫。 
    ?>

    程序運行結果

    Fatal error: Class SuperMath may not inherit from final class (Math) in E:\PHPProjects\test.php on line 16

    以上就是php final 方法怎麼用的詳細內容!


    ————————————————