Š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.
- javno: Dostupno s bilo kojeg mjesta u programu.
- privatno: Dostupno samo iz roditeljske klase.
- 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 -
- Temeljna pitanja za PHP intervju
- Prednosti PHP-a
- Karijera u PHP-u
- PHP naredbe
- Vodič za prevladavanje JavaScripta
- Kako prevladavanje djeluje na C ++?
- Prevladavanje u OOP-ima | Potreba za prevladavanjem metoda
- Pristupite modifikatorima na PHP-u
- Prevladavanje u Javi