Što je prevladavanje u PHP-u?

Prevladavanje je objektno orijentirani koncept programiranja sličan konceptu kao što su klasa, objekt, kapsulacija, polimorfizam, preopterećenje itd. U PHP-u. Nadjačavanje funkcija i klasa vrši se kada se stvori metoda u izvedenom razredu koja je ista kao i metoda u osnovnoj ili roditeljskoj klasi. Obje ove metode imaju isti naziv i isti broj argumenata.

Kako funkcionira prevladavanje?

  • Prevladavanje je pojam u kojem izvedena klasa osnovne klase izvodi istu radnju kao i osnovna klasa. Ovo prevladavanje može biti na metodama ili predavanjima. Ako je metoda nadjačavajuća, tada se naziv parametra metode utvrđuje da je pristupni odrednik isti kao i kod metode nadređene klase. Ako se u provedbi metode u potklasi izvedenoj iz osnovne klase ne nađe promjena, tada se kaže da je metoda potklasa nadjačala metodu osnovne klase.
  • Pretpostavimo da postoji klasa koja se zove Osoba koja ima svoja svojstva podataka i metode. Ovo je Osoba roditelja ili osnovne klase s metodom koja se naziva speak (). Sada postoji još jedna klasa koja se zove Employee, a koja proširuje klasu Person. Sada, ova klasa zaposlenika ima svoja svojstva podataka i metode, a također ima i metodu jednaku roditeljskoj klasi eg.speak ().
  • Ova metoda, govori (), prisutna je u osnovnoj klasi i također u izvedenoj klasi.
  • Sada se događa kada je klasa instancirana ili kada se stvori objekt, koja od metoda speak () će se izvršiti, što znači da se govori o osnovnoj klasi ili se govori o izvedenoj klasi, ovisi o objektu klase Zove se.
  • Drugim riječima, ako se stvori objekt klase Person, tada se poziva metoda (() klase Person i izvršava se). Ali ako se stvori objekt klase Employee, tada će se izvesti metoda speak () izvedene klase koja nadjačava klasu speak () roditeljske klase.
  • Evo evo kako se nadmoć događa s primjerom
  • U primjeru u nastavku postoje dvije klase, osnovna klasa i izvedena klasa. Derivirana klasa proširuje osnovnu klasu. Ove se klase pokreću i stvaraju se dva objekta $ obj1 i $ obj2. $ obj1 je objekt BaseClass-a, a $ obj2 je objekt izvedene klase. Ovi se objekti nadalje nazivaju metodama koje su deklarirane u njihovim klasama.
  • Ovdje ćete primijetiti da bazna klasa i izvedena klasa imaju istu metodu zvanu ABC (). Kad izvršavate ovaj program, primijetit ćete da je metoda ABC () nadjačala metodu osnovne klase ABC ().

Primjer preglasavanja metoda

class BaseClass (
public function ABC() (
echo "
In the base class";
)
)
class DerivedClass extends BaseClass (
// override the method ABC() of base class
public function ABC() (
echo "
In the derived class";
)
)
$obj1 = new BaseClass;
$obj1->ABC();
$obj2 = new DerivedClass;
$obj2->ABC();

Izlaz:

Nadjačavanje s Modifikatorima pristupa

Postoje tri modifikatora pristupa.

  1. javno: Dostupno s bilo kojeg mjesta u programu.
  2. privatno: Dostupno samo iz roditeljske klase.
  3. zaštićeno: Dostupno od osnovne klase i izvedene klase.

Kao što znamo da je zaštićena metoda dostupna iz osnovne klase, a izvedena klasa može se učiniti javnom u podrazredu, ali nije privatna jer je privatna dostupna samo u roditeljskoj klasi. Također ako metoda klase ima pristupni specifikator kao javni, metoda prevladavanja u izvedenoj klasi ne može se proglasiti privatnom i zaštićenom

Primjer preglasavanja metoda pomoću Modifikatora pristupa

class BaseClass (
private function ABC() (
echo "
In the base class Method : ABC";
)
protected function XYZ() (
echo "
In the base class Method : XYZ";
)
)
class DerivedClass extends BaseClass (
// overriding with public for wider accessibility
public function ABC() (
echo "
In the derived class Method : ABC";
)
// overriding method
// with more accessibility
public function XYZ() (
echo "
In the derived class Method : XYZ";
)
)
//$obj1 = new BaseClass;
//$obj1->ABC(); //throws fatal error
//$obj1->XYZ(); //throws fatal error
$obj2 = new DerivedClass;
$obj2->ABC();
$obj2->XYZ();

izlaz:

Poništavanje konačne ključne riječi

Završna ključna riječ koristi se za klase i metode. Metode i klase, a ne varijable mogu se nadjačati.

Završna metoda prevladavanja

Kada je metoda ili klasa proglašena konačnom, tada prevladavanje nad tom metodom ili klasom ne može biti izvedeno, nasljeđivanje s klasom nije moguće.

Primjer prevladavanja metoda pomoću ključne riječi

class BaseClass (
// Final method – display
// this cannot be overridden in base class
final function display() (
echo "
In the Base class display function";
)
/// method - ABC
function ABC() (
echo "
In the Base cLass ABC function";
)
)
class DerivedClass extends BaseClass (
function ABC() (
echo "
In the Derived class ABC function";
)
)
$obj1 = new DerivedClass;
$obj1->display();
$obj1->ABC();

Izlaz:

Nadvladavanje finalne klase

Klasa koja je proglašena konačnom ne može se naslijediti. Finalna klasa dalje ima i konačnu metodu zajedno s drugim metodama. Ali budući da je i sama klasa proglašena konačnom, ne koristi se deklariranje konačne metode u konačnom razredu.

Primjer prevladavanja klase pomoću završne ključne riječi

// class declared as final cannot be overridden
final class BaseClass (
// method - ABC
function ABC() (
echo "
In the BaseClass Method ABC function";
)
// Final method - display
function display() (
echo "
In the BaseClass Method display function";
)
)
// here you cannot extend the base class
// as the base class is declared as final
$obj1 = new BaseClass;
$obj1->display();
$obj1->ABC();

Izlaz:

Preporučeni članci

Ovo je vodič za prevladavanje u PHP-u. Ovdje smo razgovarali o tome što je preskupo i rad PHP-a i različitih metoda zajedno s uzorkom koda. Možete pogledati i sljedeće članke da biste saznali više -

  1. Temeljna pitanja za PHP intervju
  2. Prednosti PHP-a
  3. Karijera u PHP-u
  4. PHP naredbe
  5. Vodič za prevladavanje JavaScripta
  6. Kako prevladavanje djeluje na C ++?
  7. Prevladavanje u OOP-ima | Potreba za prevladavanjem metoda
  8. Pristupite modifikatorima na PHP-u
  9. Prevladavanje u Javi

Kategorija: