interfaccia php vs classe astratta

Cos'è una classe astratta in PHP?
Tratti in PHP

In questa lunga lezione, approfondiremo le complessità delle funzionalità dell'interfaccia di PHP. Da In questo post, esamineremo le differenze e le somiglianze tra due concetti cruciali di PHP: interfacce vs classi astratte. Esamineremo la sintassi e i casi d'uso per ciascuno, nonché i vantaggi e gli svantaggi dell'utilizzo di interfacce e classi astratte nel codice. Alla conclusione di questa sessione, saprai quando utilizzare le interfacce PHP e quando utilizzare le classi astratte, nonché come applicarle nei tuoi progetti di programmazione.

Che cos'è un'interfaccia in OOP?

  • Un'interfaccia è una classe che contiene solo metodi astratti.
  • Usando la classe dell'interfaccia, possiamo specificare quali metodi una classe dovrebbe implementare per estendere l'interfaccia.
  • A differenza della classe astratta, non è necessario scrivere abstract con i metodi perché un'interfaccia può contenere solo metodi astratti.
  • interfaccia la parola chiave viene utilizzata per dichiarare una classe di interfaccia. Guarda la seguente sintassi di una classe di interfaccia in PHP.
<?php
interface InterfaceName {
  public function someMethod1();
  public function someMethod2($name, $color);
  public function someMethod3() : string;
}
?>

Sebbene le classi e le interfacce astratte siano abbastanza simili, sono logicamente diverse l'una dall'altra.

Differenza tra le classi Interface e Abstract in PHP

Classe interfacciaClasse astratta
Non può contenere proprietàPuò contenere proprietà
Tutti i metodi sono astratti e la parola chiave astratta non è richiesta insieme ai metodi.Con contiene metodi sia astratti che non astratti. La parola chiave astratta è necessaria per dichiarare il metodo astratto.
Una classe può implementare un'interfaccia e ereditare da un'altra classe. Significa che una classe figlio può implementare un'interfaccia allo stesso tempo.Una classe figlia (ereditata da un'altra classe), non può implementare la classe astratta.
Tutti i metodi devono essere pubblici rispetto ai modificatori di accesso.I metodi possono essere pubblici o protetti rispetto ai modificatori di accesso.
Interfacce vs classi astratte

Esempio di interfaccia in PHP

interfaccia la parola chiave viene utilizzata per dichiarare un'interfaccia in PHP. Guarda la seguente implementazione dell'interfaccia in PHP.

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

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

$weight= new Weight();
$weight->standard_unit();
?>
  • Nell'esempio sopra. creiamo una classe di interfaccia Unit che contiene un metodo standard_unit.
  • Quindi creiamo un'altra classe peso che implementa il Unità interfaccia e definisce in essa il metodo standard_unit.
  • Dall'esempio sopra, possiamo vedere che la classe che usa l'interfaccia può sovrascrivere il suo metodo e può usarlo a modo suo. Diciamo che abbiamo un'altra lunghezza della classe, può usare il metodo standard_unit a modo suo.
  • Possiamo scrivere la logica che funzionerà per tutte le quantità fisiche che hanno unità SI. Guarda il seguente esempio.
<?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();
}
?>
  • Nell'esempio sopra, creiamo classi simili come nell'esempio precedente.
  • Le classi di peso, lunghezza e temperatura implementano la stessa interfaccia e possono utilizzare il metodo standard_unit a modo suo. Quindi, creiamo un array degli oggetti di queste classi e li eseguiamo in loop uno per uno per classificare il metodo standard_unit.

Riferimento alla documentazione ufficiale dell'interfaccia PHP 8.

Cos'è una classe astratta in PHP?
Tratti in PHP

Rimani aggiornato su PHP!

Non spammiamo!

en English
X
Scorrere fino a Top