Home  >  Article  >  Backend Development  >  Detailed explanation of abstract methods and abstract classes in php

Detailed explanation of abstract methods and abstract classes in php

墨辰丷
墨辰丷Original
2018-05-25 14:41:531410browse

This article mainly introduces abstract methods and abstract classes in php. It has a very good reference value. Let’s take a look at it with the editor

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 there is a method in a class that is an abstract method, then the class is defined as an abstract class. The abstract class must also be modified with the "abstract" keyword; in the abstract class, there can be whether it is abstract or not. methods 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" are defined. There is also a non-abstract method fun3() with "fun2"; 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. This specification requires subclasses to comply. After the subclass succeeds the abstract class, it The abstract method is implemented according to the needs of the subclass. 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 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 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 entire content of this article, I hope it will be helpful to everyone's study.


Related recommendations:

PDO data access in PHPAbstractLayer

Abstract in phpThe difference between classes and interfaces

AbstractClasses in PHP

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!

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