Sobes.tech
Junior

Šta je proširenje (extend) u kontekstu PHP-a?

sobes.tech АИ

Одговор од АИ

Proširenje, ili nasleđivanje, u PHP-u je mehanizam koji omogućava jednoj klasi (potklasi ili izvedenoj klasi) da nasledi svojstva i metode druge klase (roditeljske ili osnovne klase).

Ključna reč extends se koristi za označavanje roditeljske klase.

Prednosti nasleđivanja:

  • Ponovna upotreba koda: Nije potrebno da se isti kod piše više puta.
  • Proširivost: Potklasa može dodavati nova svojstva i metode ili prepisivati postojeće iz roditeljske klase.
  • Polimorfizam: Objekti različitih klasa mogu se tretirati kao objekti zajedničke roditeljske klase.

Primer:

<?php

class Animal {
    public function eat() {
        echo "Životinja jede.";
    }
}

class Dog extends Animal {
    public function bark() {
        echo "Pas laje.";
    }
}

$dog = new Dog();
$dog->eat(); // Poziv metode iz roditeljske klase
$dog->bark(); // Poziv metode iz potklase

?>

Potklasa ne nasleđuje:

  • Privatna svojstva i metode (iako postoje u objektu, ne mogu biti direktno pozvani iz potklase).
  • Konstruktor roditeljske klase se ne poziva automatski pri kreiranju objekta potklase, osim ako se eksplicitno ne navede pomoću parent::__construct().