Home > Article > Backend Development > Detailed explanation of usage examples of final classes and final methods in PHP object-oriented
If we don't want a class to be inherited, we use final to modify the class. This class will not be inherited.
final---used before classes and methods.
Final class---cannot be inherited.
Final method---cannot be overridden.
Final classes cannot be inherited.
If we do not want a class to be inherited, we use final to modify the class. This class will not be inherited. For example, the Math class we set involves the mathematical calculation methods we want to do. These algorithms do not need to be modified or inherited. We set it to a final type.
<?php //声明一个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类不能被继承。 ?>
Program running results
Fatal error: Class SuperMath may not inherit from final class (Math) in E:\PHPProjects\test.php on line 14
The final method cannot be overridden
If you do not want a method in the class If overridden by a subclass, we can set this method as a final method. We only need to add the final modifier before this method.
If this method is overridden by a subclass, an error will occur.
<? //声明一个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方法不能被重写。 ?>
Program running result
Fatal error: Class SuperMath may not inherit from final class (Math) in E:\PHPProjects\test.php on line 16
The above is the detailed content of Detailed explanation of usage examples of final classes and final methods in PHP object-oriented. For more information, please follow other related articles on the PHP Chinese website!