Maison  >  Article  >  développement back-end  >  Classe finale et méthode finale orientées objet PHP

Classe finale et méthode finale orientées objet PHP

高洛峰
高洛峰original
2017-01-21 13:15:321424parcourir

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.
Les classes finales ne peuvent pas être héritées.
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 définissons implique les méthodes de calcul mathématique que nous souhaitons appliquer. Ces algorithmes n'ont pas besoin d'être modifiés ou hérités. Nous la définissons sur un 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类不能被继承。 

?>

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 14

La méthode finale ne peut pas être remplacée
Si vous ne souhaitez pas qu'une méthode de la classe soit remplacée par une sous-classe, nous pouvons définir cette méthode à Pour les méthodes finales, il vous suffit d'ajouter le modificateur final avant cette 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方法不能被重写。 

?>

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

Pour plus d'articles liés aux classes finales orientées objet PHP et aux méthodes finales, veuillez faire attention au site Web PHP chinois !

Déclaration:
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