Home > Backend Development > PHP Problem > How to use php final method

How to use php final method

藏色散人
Release: 2023-03-05 20:52:01
Original
3448 people have browsed it

In PHP, when we do not want a method in a class to be overridden by a subclass, we can set this method as a final method. We only need to add the final modifier before this method, and its syntax is such as "public final function max($a,$b){}".

How to use php final method

Recommended: "PHP Video Tutorial"

PHP Object-oriented final class and final method

final---used before classes and methods.

Final class---cannot be inherited.

Final method---cannot be overridden.

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.

<? 
//声明一个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类不能被继承。 
?>
Copy after login

Program running results

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

If we don’t want a method in the class to be overridden by a subclass, we can set this method as a final method and just add the final modification before this method. symbol.

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方法不能被重写。 
?>
Copy after login

Program running result

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

The above is the detailed content of How to use php final method. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template