interface php vs classe abstraite

SSL de confiance à partir de seulement 3.44 $
Publicités
Qu'est-ce qu'une classe abstraite en PHP ?
Caractéristiques en PHP

Dans cette leçon approfondie, nous approfondirons les complexités de la fonctionnalité d'interface de PHP. Dans cet article, nous examinerons les différences et les similitudes entre deux concepts PHP cruciaux : les interfaces et les classes abstraites. Nous examinerons la syntaxe et les cas d'utilisation de chacun, ainsi que les avantages et les inconvénients de l'utilisation d'interfaces et de classes abstraites dans votre code. À la fin de cette session, vous saurez quand utiliser les interfaces PHP et quand utiliser les classes abstraites, ainsi que comment les appliquer dans vos projets de programmation.

Qu'est-ce qu'une interface en POO ?

  • Une interface est une classe qui ne contient que des méthodes abstraites.
  • En utilisant la classe d'interface, nous pouvons spécifier quelles méthodes une classe doit implémenter pour étendre l'interface.
  • Contrairement à la classe abstraite, vous n'avez pas besoin d'écrire des résumés avec les méthodes car une interface ne peut contenir que des méthodes abstraites.
  • interface Le mot-clé est utilisé pour déclarer une classe d'interface. Regardez la syntaxe suivante d'une classe d'interface en PHP.
<?php
interface InterfaceName {
  public function someMethod1();
  public function someMethod2($name, $color);
  public function someMethod3() : string;
}
?>

Bien que les classes abstraites et les interfaces soient assez similaires, elles sont logiquement différentes les unes des autres.

Différence entre les classes Interface et Abstract en PHP

Classe d'interfaceClasse abstraite
Ne peut pas contenir de propriétésPeut contenir des propriétés
Toutes les méthodes sont abstraites et le mot-clé abstrait n'est pas requis avec les méthodes.Con contient à la fois des méthodes abstraites et non abstraites. Un mot-clé abstrait est requis pour déclarer une méthode abstraite.
Une classe peut implémenter une interface en héritant d'une autre classe. Cela signifie qu'une classe enfant peut implémenter une interface en même temps.Une classe enfant (héritée d'une autre classe) ne peut pas implémenter la classe abstraite.
Toutes les méthodes doivent être publiques en ce qui concerne les modificateurs d'accès.Les méthodes peuvent être publiques ou protégées par rapport aux modificateurs d'accès.
Interfaces vs classes abstraites

Exemple d'interface en PHP

SSL de confiance à partir de seulement 3.44 $
Publicités

interface Le mot-clé est utilisé pour déclarer une interface en PHP. Regardez l'implémentation suivante de l'interface en PHP.

<?php
interface Unit {
  public function standard_unit();
}

class Weight implements Unit {
  public function standard_unit() {
    echo "Kg";
  }
}

$weight= new Weight();
$weight->standard_unit();
?>
  • Dans l'exemple ci-dessus. nous créons une classe d'interface Unit qui contient une méthode standard_unit.
  • Ensuite, nous créons une autre classe poids qui met en œuvre la Unité interface et y définit la méthode standard_unit.
  • À partir de l'exemple ci-dessus, nous pouvons voir que la classe qui utilise l'interface peut redéfinir sa méthode et l'utiliser à sa manière. Disons que nous avons une autre longueur de classe, elle peut utiliser la méthode standard_unit à sa manière.
  • Nous pouvons écrire la logique qui fonctionnera pour toutes les quantités physiques qui ont des unités SI. Regardez l'exemple suivant.
<?php
// Interface definition
interface Unit {
  public function standard_unit();
}

// Class definitions
class Weight implements Unit {
  public function makeSound() {
    echo " kg";
  }
}

class Length implements Unit {
  public function standard_unit() {
    echo " meter";
  }
}

class Temperature implements Unit {
  public function standard_unit() {
    echo " celcius";
  }
}

// Create a list of Physical Quanitites
$weight = new Weight();
$length = new Length();
$temperature = new Temperature();
$quantities= array($weight, $length, $temperature);

// Tell the quantities to use its standard unit
foreach($quantities as $quantities) {
  $quantitiy->standard_unit();
}
?>
  • Dans l'exemple ci-dessus, nous créons des classes similaires à celles de l'exemple précédent.
  • Les classes de poids, de longueur et de température implémentent la même interface et peuvent utiliser la méthode standard_unit à leur manière. Ainsi, nous créons un tableau des objets de ces classes et les boucler un par un pour classer la méthode standard_unit.

Référence à la documentation officielle de l'interface PHP 8.

Qu'est-ce qu'une classe abstraite en PHP ?
Caractéristiques en PHP
close

Restez à jour sur PHP !

Nous ne spammons pas !

SSL de confiance à partir de seulement 3.44 $
Publicités
en English
X
Remonter en haut