1. What is an abstract method?
The methods we define in the class without method mention are abstract methods. The so-called no method body means that there are no curly braces and the contents inside when declaring, but directly adding a semicolon after the method name when declaring. In addition, when declaring an abstract method, the method also needs to add a keyword. "abstract" to modify.
For example:
abstract function fun1();
abstract function fun2();
2. What is an abstract class?
As long as a method in a class is an abstract method, then the class is 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 that are not abstract and Member attributes, but as long as one method is abstract, the class must be declared as an abstract class and decorated with "abstract".
For example:
abstract class demo{ var $test; abstract function fun1(); abstract function fun2(); }
3. What is the role of abstract classes?
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" are defined. "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 instances. What is the use of declaring abstract classes for objects? We use abstract methods as templates for subclass overloading. Defining an abstract class is equivalent to defining a specification. This specification requires subclasses to comply. After the subclass succeeds the abstract class, the abstract class The abstract methods inside are implemented according to the needs of subclasses. The subclass must implement all the abstract methods in the parent class. Otherwise, if there are still abstract methods in the subclass, then the subclass is still an abstract class and cannot be instantiated; why do we have to inherit from the abstract class? Because sometimes we must inherit from an abstract class to implement some functions, otherwise you will not be able to implement these functions. If you inherit an abstract class, you must implement the abstract method in the class;
For example:
abstract class mode{ var $test; abstract function fun1(); abstract function fun2(); function fun2(){ .... } } $mode = new mode(); //抽象类只能为产生实例对象,所以这样做是错的,实例化对象交给子类 class test extends mode{ function fun1(){ .... } function fun2(){ .... } } $test = new test(); //子类可以实例化对象,因为实现了所有父类的抽象化方法
The above is the detailed content of Detailed explanation of abstract methods and abstract classes in php. For more information, please follow other related articles on the PHP Chinese website!