Maison >développement back-end >Problème PHP >Quelle est la différence entre hériter de classes et implémenter des interfaces en php

Quelle est la différence entre hériter de classes et implémenter des interfaces en php

WBOY
WBOYoriginal
2022-02-17 11:43:181710parcourir

La différence entre les classes héritées et les interfaces implémentées en PHP : 1. L'héritage PHP appartient à l'héritage unique, qui garantit l'unité, mais n'est pas assez flexible, tandis que l'implémentation d'interfaces est un complément à l'héritage unique 2. L'implémentation d'interfaces peut être réalisée sans ; détruire la relation hiérarchique Sous le principe, la fonction d'une certaine classe est étendue.

Quelle est la différence entre hériter de classes et implémenter des interfaces en php

L'environnement d'exploitation de ce tutoriel : système Windows 10, PHP version 7.1, ordinateur DELL G3

La différence entre les classes héritées et les interfaces implémentées en php

1. Comparaison entre l'héritage et les interfaces implémentées :

( 1) L'héritage php est un héritage unique, qui garantit l'unicité, mais n'est pas assez flexible. L'implémentation d'interfaces est un complément à l'héritage unique ;

(2) L'implémentation d'interfaces peut étendre les fonctionnalités d'une certaine classe sans détruire la relation hiérarchique de classe.

<?php
  class Monkey {
      public $age;
      public $name;
      public function climbing() {
          echo "猴子会爬树<br/>";
      }
  }
  interface iBirdable {
      public function fly();
  }
  interface iFishable {
      public function swimming();
  }
  class LittleMonkey extends Monkey implements iBirdable,iFishable {
      public function fly() {
          echo "猴子还会飞<br/>";
      }
      public function swimming() {
          echo "猴子也会游泳<br/>";
      }
  }
  $littleMonkey = new LittleMonkey();
  $littleMonkey -> climbing();
  $littleMonkey -> fly();
  $littleMonkey -> swimming();
?>

2. Mot-clé final :

1. Si une classe ne veut pas être héritée par d'autres classes (du point de vue de la sécurité), elle peut être modifiée avec final ; être remplacé par des sous-classes (non, j'espère que cette méthode sera surchargée par des méthodes de sous-classe), ou elle peut être modifiée avec final.

<?php  
class A{  
    final public function getRate($salary){  
        return $salary*0.08;  
    }  
}  
class B extends A{  
    //不能去覆盖父类的getRate方法.  
    /*public function getRate($sal){ 
        return $sal*0.01; 
    }*/  
}  
        
$b=new B();  
echo $b->getRate(100)."<br/>";  
?>

3. Final ne peut pas modifier les variables membres (propriétés).

3. const :

1. Lorsqu'un attribut ne veut pas être modifié, vous pouvez envisager d'utiliser const pour en faire une constante. Par exemple, pi ne peut pas être falsifié.

2. Syntaxe de base :

const nom de constante = attribuer une valeur initiale ;

Si vous n'attribuez pas de valeur initiale, elle ne pourra pas être falsifiée ultérieurement et elle n'aura pas de valeur.

3. Les modificateurs ne peuvent pas être écrits sur des constantes. Ils sont par défaut publics mais ne peuvent pas être écrits.

4. Les noms de constantes sont généralement nommés en lettres majuscules. "

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn