brush

Cum să utilizezi moștenirea și polimorfismul în PHP

  • person_outline Claudiu Mihut
  • chat_bubble_outline Comentarii (0)
  • access_time 2023-08-29 11:01:16

Moștenirea și polimorfismul sunt două concepte fundamentale în programarea orientată pe obiecte, iar PHP oferă suport nativ pentru ambele. Prin utilizarea acestor concepte, poți crea cod mai modular și mai ușor de întreținut.

Moștenirea în PHP permite definirea unei ierarhii de clase, în care o clasă derivată (copil) moștenește proprietățile și metodele clasei de bază (părinte). Aceasta înseamnă că clasa copil va avea acces la toate metodele și proprietățile clasei părinte, permițând astfel reutilizarea codului și evitarea duplicării.

Pentru a utiliza moștenirea în PHP, trebuie să folosești cuvântul cheie extends în momentul definirii clasei copil. De exemplu, să presupunem că avem o clasă părinte numită Animal, iar dorim să creăm o clasă copil numită Câine. Putem face acest lucru astfel:


class Animal {
   protected $nume;

   public function sunet() {
      echo "Animalul face sunete.";
   }
}

class Câine extends Animal {
   public function sunet() {
      echo "Câinele latră.";
   }
}

În acest exemplu, clasa Câine moștenește proprietatea $nume și metoda sunet() din clasa părinte Animal. Însă, în clasa copil, putem suprascrie metoda sunet() pentru a specifica un comportament diferit. Astfel, când apelăm metoda sunet() pe un obiect de tipul Câine, se va afișa mesajul "Câinele latră."

Polimorfismul este conceptul de a avea mai multe clase care implementează aceeași metodă, dar cu comportamente diferite. În PHP, putem folosi polimorfismul în combinație cu moștenirea pentru a crea cod mai flexibil și mai modular.

Pentru a utiliza polimorfismul în PHP, trebuie să avem o clasă părinte care definește metoda în mod abstract, iar apoi să implementăm această metodă în clasele copil. De exemplu, să presupunem că avem o clasă părinte numită Forma și două clase copil numite Pătrat și Cerc:


abstract class Forma {
   abstract public function arie();
}

class Pătrat extends Forma {
   private $latura;

   public function __construct($latura) {
      $this->latura = $latura;
   }

   public function arie() {
      return $this->latura * $this->latura;
   }
}

class Cerc extends Forma {
   private $raza;

   public function __construct($raza) {
      $this->raza = $raza;
   }

   public function arie() {
      return 3.14 * $this->raza * $this->raza;
   }
}

În acest exemplu, clasa Forma definește metoda abstractă arie(), care trebuie implementată în clasele copil. Astfel, clasa Pătrat și clasa Cerc implementează fiecare metoda arie() într-un mod specific, permițând calcularea ariei pentru fiecare formă geometrică în parte.

Utilizarea moștenirii și a polimorfismului în PHP te va ajuta să scrii cod mai eficient și mai ușor de menținut. Aceste concepte te ajută să reutilizezi codul existent, să eviți duplicarea și să îți crești productivitatea în dezvoltarea de aplicații PHP.

Comentarii (0)

Lasă un comentariu