Home  >  Article  >  Backend Development  >  How to understand php’s abstract methods

How to understand php’s abstract methods

coldplay.xixi
coldplay.xixiOriginal
2020-11-04 14:00:172469browse

Understanding PHP abstract methods is: 1. In OOP language, each class has at least one public method as an interface for external code to access it. Abstract methods are introduced to facilitate inheritance; 2. In A method defined in a class without a method body is an abstract method.

How to understand php’s abstract methods

The abstract method of php is:

In OOP language, a class can have one or more subclasses , and each class has at least one public method as an interface for external code to access it. The abstract method is introduced for the convenience of inheritance. Let's first take a look at the definitions of abstract classes and abstract methods and then explain its use.

What is an abstract method? The method we define in the class without a method body is an abstract method. The so-called no method body means that there are no curly brackets and the contents in the method declaration, but directly in the declaration. Add a semicolon after the method name. In addition, when declaring an abstract method, add a keyword "abstract" to modify it;

abstract function fun1();
abstract function fun2();

The above example is an abstract method without a method body modified by "abstract"" fun1()" and "fun2()", don't forget that there is a semicolon after the abstract method; so what is an abstract class? As long as a method in a class is an abstract method, then the class must be defined as an abstract class, and the abstract class must also be modified with the "abstract" keyword; in an abstract class, there can be methods and member attributes that are not abstract, but as long as If a method is an abstract method, the class must be declared as an abstract class and decorated with "abstract".

abstract class Demo
{
    var $test;
    abstract function fun1();
    abstract function fun2();
    function fun3(){
        ...
    }
}

In the above example, an abstract class "Demo" is defined and modified with "abstract". In this class, a member attribute "$test" and two abstract methods "fun1" and " fun2", there is also a non-abstract method fun3(); so how do we use abstract classes? The most important point is that abstract classes cannot produce instance objects, so they cannot be used directly. We have mentioned many times that classes cannot be used directly. We are using objects instantiated through classes, so abstract classes cannot produce instance objects. What is the use of declaring an abstract class? We use abstract methods as templates for subclass overloading. Defining an abstract class is equivalent to defining a specification, which requires subclasses to comply. After the subclass inherits the abstract class, it Abstract methods are implemented as needed by subclasses. The subclass must implement all the abstract methods in the parent class, otherwise there are still abstract methods in the subclass, Then the subclass is still an abstract class, and the class still cannot be instantiated; Why do we Do you have to inherit from an abstract class? Because sometimes if we want to implement some functions, we must inherit from an abstract class, otherwise you will not be able to implement these functions. If you inherit an abstract class, you must implement the abstract methods in the class;

<?
abstract class Demo
{
    var $test;
    abstract function fun1();
    abstract function fun2();
    function fun3() {
        ...
    }
}
$demo=new Demo(); //抽象类不能产生实例对象,所以这样做是错的,实例化对象交给子类
class Test extends Demo
{
    function fun1() {
        ...
    }
    function fun2() {
        ...
    }
}
$test = new Test(); //子类可以实例化对象,因为实现了父类中所有抽象方法
?>

Related free learning recommendations: php programming (video)

The above is the detailed content of How to understand php’s abstract methods. For more information, please follow other related articles on the PHP Chinese website!

Statement:
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