ホームページ > バックエンド開発 > PHPの問題 > PHPのfinalメソッドの使い方

PHPのfinalメソッドの使い方

藏色散人
リリース: 2023-03-05 20:52:01
オリジナル
3426 人が閲覧しました

PHP では、クラス内のメソッドをサブクラスによってオーバーライドしたくない場合、このメソッドを Final メソッドとして設定できます。このメソッドの前に Final 修飾子を追加するだけで済みます。構文は「public Final function max($a,$b){}」などです。

PHPのfinalメソッドの使い方

# 推奨: 「

PHP ビデオ チュートリアル #PHP オブジェクト指向の最終クラスと最終メソッド

final---クラスとメソッドの前に使用されます。

最終クラス---継承できません。

最後のメソッド---オーバーライドできません。

クラスを継承したくない場合は、final を使用してクラスを変更します。このクラスは継承されません。

たとえば、設定した Math クラスには、実行したい数学的計算メソッドが含まれています。これらのアルゴリズムを変更したり継承したりする必要はありません。これを最終的な型に設定します。

<? 
//声明一个final类Math 
final class Math
{ 
    public static $pi = 3.14; 
    public function __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类Math 
class Math
{ 
    public static $pi = 3.14; 
    public function __toString()
    { 
        return "这是Math类。"; 
    } 
  public final function max($a,$b)
  { 
      return $a > $b ? $a : $b ; 
  } 
} 
//声明类SuperMath 继承自 Math类 
class SuperMath extends Math
{ 
    public final function 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メソッドの使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート