Home  >  Article  >  Backend Development  >  Analysis of the differences and choices between abstract classes and interfaces in PHP, php abstraction_PHP tutorial

Analysis of the differences and choices between abstract classes and interfaces in PHP, php abstraction_PHP tutorial

WBOY
WBOYOriginal
2016-07-12 08:55:15870browse

Analysis of the differences and choices of abstract classes and interfaces in PHP, php abstraction

This article analyzes the differences and choices of abstract classes and interfaces in PHP with examples. Share it with everyone for your reference, the details are as follows:

Difference:

1. The interface is used through the keyword implements. The use of abstract classes is through the keyword extends. Of course, interfaces can also be inherited through the keyword extends.

2. Member variables (including class static variables) cannot be declared in the interface, but class constants can be declared. Various types of member variables can be declared in abstract classes to implement data encapsulation. (In addition, member variables in the JAVA interface must be declared as public static final type)

<&#63;php
abstract class Father {
  function meth1() {
    echo "meth1...<br>";
  }
  abstract function meth2();
  public $var1="var1";
  public static $var2="var2";
  const Var3="Var3";
}
class Son extends Father {
  function meth2() {
    echo "meth2 of Son...<br>";
  }
}
$s=new Son();
echo $s->var1."<br>";
echo Father::$var2."<br>";
echo Father::Var3."<br>";
Interface IFather {
  //public $iVar1="iVar1"; 此处接口定义中不能包含成员变量
  //public static $iVar2="iVar2"; 此处接口定义中不能包含静态变量
  const iVar3="iVar3";
  function iMeth1();
}
Class ISon implements IFather {
  function iMeth1() {
    echo "iMeth1...<br>";
  }
}
$is=new ISon();
echo IFather::iVar3;
&#63;>

3. Interfaces do not have constructors, but abstract classes can have constructors.

4. Methods in interfaces are of public type by default, while methods in abstract classes can be modified with private, protected, or public.

5. A class can implement multiple interfaces at the same time, but a class can only inherit from one abstract class.

Abstract class or interface

1. If you want to create a model that will be adopted by some closely related objects, you can use abstract classes. Use interfaces if you want to create functionality that will be adopted by a number of unrelated objects.

2. If behavior must be inherited from multiple sources, use interfaces.

3. If you know that all classes will share a common behavior implementation, use an abstract class and implement the behavior in it.

Readers who are interested in more PHP-related content can check out the special topics of this site: "Summary of PHP Network Programming Skills", "Introduction Tutorial on PHP Basic Grammar", "Summary of PHP Office Document Skills (including word, excel, access, ppt)", "php date and time usage summary", "php object-oriented programming introductory tutorial", "php string (string) usage summary", "php mysql database operation introductory tutorial" and "php common database operation skills summary" 》

I hope this article will be helpful to everyone in PHP programming.

Articles you may be interested in:

  • PHP object-oriented programming (oop) study notes (1) - abstract classes, object interfaces, instanceof and contract programming
  • Introduction to PHP OPP mechanisms and patterns (abstract classes, interfaces and contract programming)
  • Detailed explanation of examples of using PHP interfaces and abstract classes
  • A brief analysis of the concepts and differences between abstract classes and interfaces in PHP
  • In-depth analysis of the difference between interfaces and abstract classes in PHP
  • A brief description of using interfaces, abstract classes, and ordinary base classes to implement "interface-oriented programming" and "coupling methods" in PHP
  • The actual role of php interface classes and abstract classes

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/1117084.htmlTechArticleAnalysis of the differences and choices of abstract classes and interfaces in PHP, php abstraction This article analyzes abstract classes and interfaces in PHP with examples differences and choices. Share it with everyone for your reference, the details are as follows: The difference...
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