Čo je v PHP nadradené?

Prepísanie je koncept objektovo orientovaného programovania, ktorý je podobný pojmu ako trieda, objekt, zapuzdrenie, polymorfizmus, preťaženie atď. V PHP. Prekrývanie funkcií a tried sa vykonáva, keď je vytvorená metóda v odvodenej triede, ktorá je rovnaká ako metóda v základnej triede alebo nadradenej triede. Obe tieto metódy majú rovnaký názov a rovnaký počet argumentov.

Ako funguje Overriding?

  • Prvoradý je pojem, v ktorom odvodená trieda základnej triedy vykonáva rovnakú akciu ako základná trieda. Toto prepísanie sa môže týkať metód alebo tried. Ak ide o prepísanie metódy, potom názov metódy, parametre, zistí sa, že špecifikátor prístupu je rovnaký ako v prípade metódy nadradenej triedy. Ak v implementácii metódy v podtriede odvodenej zo základnej triedy nie je zistená žiadna zmena, v tom čase sa hovorí, že metóda podtriedy potlačila metódu základnej triedy.
  • Predpokladajme, že existuje trieda s názvom Osoba, ktorá má vlastné vlastnosti a metódy údajov. Toto je osoba nadradenej alebo základnej triedy s metódou nazývanou talk (). Teraz existuje ešte jedna trieda s názvom Zamestnanec, ktorá rozširuje triedu Person. Táto trieda Zamestnanec má teraz svoje vlastné dátové vlastnosti a metódy a má tiež rovnakú metódu ako materská trieda eg.speak ().
  • Táto metóda hovorí () je prítomná v základnej triede a tiež v odvodenej triede.
  • Teraz, čo sa stane, keď je trieda vytvorená, alebo keď je vytvorený objekt, ktorá z metódy hovor () bude vykonaná, čo znamená, že sa hovorí o základnej triede alebo hovorí o odvodenej triede, čo závisí od objektu triedy. sa volá.
  • Inými slovami, ak sa vytvorí objekt triedy Person, zavolá sa metóda talk () triedy Person, a preto sa vykonáva. Ak sa však vytvorí objekt triedy Zamestnanec, vykoná sa metóda talk () odvodenej triedy, ktorá prepíše triedu talk () nadradenej triedy.
  • A tu je príklad toho, ako k prvému dôjde
  • V nižšie uvedenom príklade sú dve triedy, základná trieda a odvodená trieda. Odvodená trieda rozširuje základnú triedu. Tieto triedy sa iniciujú a vytvoria sa dva objekty $ obj1 a $ obj2. $ obj1 je objekt BaseClass a $ obj2 je objekt odvodenej triedy. Tieto objekty ďalej nazývajú metódy deklarované v príslušných triedach.
  • Tu zistíte, že základná trieda a odvodená trieda majú rovnakú metódu nazývanú ABC (). Po spustení tohto programu si všimnete, že metóda ABC () potlačila metódu ABC () základnej triedy.

Príklad prepísania metódy

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();

Výkon:

Prepísanie s modifikátormi prístupu

Existujú tri modifikátory prístupu.

  1. verejné: prístupné odkiaľkoľvek v programe.
  2. súkromné: prístupné iba z rodičovskej triedy.
  3. Chránené: Prístupné zo základnej triedy az odvodenej triedy.

Ako vieme, chránená metóda je prístupná zo základnej triedy az odvodenej triedy, môže byť zverejnená v podtriede, ale nie súkromná, pretože súkromná je dostupná iba v nadradenej triede. Ak má metóda triedy prístupový špecifikátor ako verejný, potom nemôže byť prevažujúca metóda v odvodenej triede vyhlásená za súkromnú a chránenú.

Príklad prepísania metódy pomocou modifikátorov prístupu

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();

výkon:

Prekročenie konečného kľúčového slova

Konečné kľúčové slovo sa používa pre triedy a metódy. Metódy a triedy, nie premenné, môžu byť prepísané.

Konečné prepísanie metódy

Ak je metóda alebo trieda vyhlásená za konečnú, nie je možné vykonať prvú kontrolu nad touto metódou alebo triedou, nie je možné ani zdedenie s triedou.

Príklad prepísania metódy pomocou konečného kľúčového slova

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();

Výkon:

Potlačenie záverečnej triedy

Triedu vyhlásenú za konečnú nemožno zdediť. Finálna trieda má konečnú metódu spolu s ďalšími metódami. Ale pretože samotná trieda je vyhlásená za konečnú, nie je možné deklarovať konečnú metódu v konečnej triede.

Príklad prepísania triedy pomocou konečného kľúčového slova

// 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();

Výkon:

Odporúčané články

Toto je príručka pre Overriding v PHP. Tu diskutujeme o tom, čo je prvoradým a fungujúcim PHP a rôznymi metódami spolu s ukážkovým kódom. Ďalšie informácie nájdete aj v nasledujúcich článkoch -

  1. Základné otázky PHP Interview
  2. Výhody PHP
  3. Kariéra v PHP
  4. Príkazy PHP
  5. Sprievodca nastavením v JavaScripte
  6. Ako prevažuje práca v C ++?
  7. Prevažujúce hodnoty v OOP Potreba prepísania metódy
  8. Modifikátory prístupu v PHP
  9. Prevláda v Jave

Kategórie: