Maison > développement back-end > Problème PHP > Comment utiliser la méthode finale de PHP

Comment utiliser la méthode finale de PHP

藏色散人
Libérer: 2023-03-05 20:52:01
original
3455 Les gens l'ont consulté

En PHP, lorsque nous ne voulons pas qu'une méthode d'une classe soit remplacée par une sous-classe, nous pouvons définir cette méthode comme méthode finale. Il suffit d'ajouter le modificateur final avant cette méthode, et son. la syntaxe est telle que "public final function max($a,$b){}".

Comment utiliser la méthode finale de PHP

Recommandé : "Tutoriel vidéo PHP"

Classes finales et méthodes finales orientées objet PHP

final---utilisé avant les cours et les méthodes.

Classe finale --- ne peut pas être héritée.

méthode finale --- ne peut pas être remplacée.

Si nous ne voulons pas qu’une classe soit héritée, nous utilisons final pour modifier la classe. Cette classe ne sera pas héritée.

Par exemple, la classe Math que nous avons définie implique les méthodes de calcul mathématique que nous voulons effectuer. Ces algorithmes n'ont pas besoin d'être modifiés ou hérités. Nous la définissons comme type final.

<? 
//声明一个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类不能被继承。 
?>
Copier après la connexion

Résultats d'exécution du programme

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

Si nous ne voulons pas qu'une méthode de la classe soit remplacée par des sous-classes, nous pouvons définir cette méthode comme méthode finale et simplement ajouter la modification finale avant ce symbole de méthode.

Si cette méthode est remplacée par une sous-classe, une erreur se produira.

<? 
//声明一个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方法不能被重写。 
?>
Copier après la connexion

Résultats en cours d'exécution du programme

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal