Différences : 1. Le mot-clé de l'interface est Implements et le mot-clé de la classe abstraite est extends ; 2. L'interface ne peut pas déclarer de variables membres, la classe abstraite le peut ; 3. L'interface n'a pas de constructeur, la classe abstraite en a ; 4. Méthode d'interface La valeur par défaut est de type public, la classe abstraite ne l'est pas ; 5. Une classe peut implémenter plusieurs interfaces en même temps et ne peut hériter que d'une seule classe abstraite.
L'environnement d'exploitation de ce tutoriel : système Windows 7, PHP version 7.1, ordinateur DELL G3
Différence :
1. L'interface est utilisée via le mot-clé Implements. L'utilisation de classes abstraites se fait via le mot-clé extends. Bien entendu, les interfaces peuvent également être héritées via le mot-clé extends.
2. Les variables membres (y compris les variables statiques de classe) ne peuvent pas être déclarées dans l'interface, mais les constantes de classe peuvent être déclarées. Différents types de variables membres peuvent être déclarés dans des classes abstraites pour implémenter l'encapsulation des données. (De plus, les variables membres de l'interface JAVA doivent être déclarées comme type final statique public)
<?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. L'interface n'a pas de constructeur, mais la classe abstraite peut avoir un constructeur.
4. Les méthodes des interfaces sont de type public par défaut, tandis que les méthodes des classes abstraites peuvent être modifiées avec private, protected ou public.
5. Une classe peut implémenter plusieurs interfaces en même temps, mais une classe ne peut hériter que d'une seule classe abstraite.
Classe ou interface abstraite.
Apprentissage recommandé : "Tutoriel vidéo PHP"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!