Home > Article > Backend Development > What is the difference between php abstract class and interface
Difference: 1. The keyword of interface is implements, and the keyword of abstract class is extends; 2. Interface cannot declare member variables, abstract class can; 3. Interface does not have constructor, abstract class does; 4. Interface method The default is public type, abstract class is not; 5. A class can implement multiple interfaces at the same time and can only inherit from one abstract class.
The operating environment of this tutorial: windows7 system, PHP7.1 version, DELL G3 computer
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, the member variables in the JAVA interface must be declared as public static final type)
<?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; ?>
3. The interface does not have a constructor, but the abstract class can have a constructor.
4. Methods in interfaces are of public type by default, while methods in abstract classes can be modified with private, protected, and 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.
Recommended learning: "PHP Video Tutorial"
The above is the detailed content of What is the difference between php abstract class and interface. For more information, please follow other related articles on the PHP Chinese website!