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)