Ce este suprasolicitarea în PHP?

Suprasolicitarea este un concept de programare orientat pe obiecte care este similar cu un concept precum Clasa, obiect, încapsulare, polimorfism, supraîncărcare, etc. Suprasolicitarea funcțiilor și a claselor se face atunci când este creată o metodă din clasa derivată, care este aceeași cu cea a metodei din clasa de bază sau clasa părinte. Ambele metode au același nume și același număr de argumente.

Cum funcționează suprasolicitarea?

  • Suprasolicitarea este un concept în care clasa derivată a clasei de bază efectuează aceeași acțiune ca cea a unei clase de bază. Această suprasolicitare poate fi pe metode sau clase. Dacă metoda depășește numele metodei, parametrii, specificatorul de acces este identic cu cel al metodei clasei părinte. În cazul în care nu există nicio modificare în implementarea metodei în subclasa derivată din clasa de bază, la acea dată se spune că metoda subclasei a înlocuit metoda clasei de bază.
  • Să presupunem că există o clasă numită Persoană care are propriile date și metode. Aceasta este persoana părinte sau de clasă de bază, cu o metodă numită speak (). Acum există încă o clasă numită Angajat care extinde clasa Persoană. Acum, această clasă de angajați are propriile date și metode de date și are, de asemenea, o metodă identică cu cea a clasei părinte, de ex.speak ().
  • Aceasta, metoda speak () este prezentă în clasa de bază și, de asemenea, în clasa derivată.
  • Acum, ceea ce se întâmplă este când clasa este instantanată sau când obiectul este creat, care din metoda speak () va fi executată, ceea ce înseamnă că vorbirea despre clasa de bază sau vorbirea despre clasa derivată este executată depinde de obiectul clasei. se numește.
  • Cu alte cuvinte, dacă este creat un obiect al clasei Person, atunci se numește metoda speak () a clasei Person și, prin urmare, este executată. Dar dacă obiectul clasei Angajat este creat, atunci se va executa metoda speak () a clasei derivate, care înlocuiește clasa speak () a clasei părinte.
  • Iată cum are loc o suprasolicitare cu un exemplu
  • În exemplul de mai jos, există două clase, clasa de bază și clasă derivată. Clasa derivată extinde clasa de bază. Aceste clase sunt inițiate și sunt create două obiecte $ obj1 și $ obj2. $ obj1 este un obiect al BaseClass și $ obj2 este un obiect al unei clase derivate. Aceste obiecte apelează în continuare la metodele declarate în clasele respective.
  • Aici veți observa că clasa de bază și clasa derivată au aceeași metodă numită ABC (). Când executați acest program, veți observa că metoda ABC () a înlocuit metoda ABC ().

Exemplu de suprasolicitare a metodei

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

ieşire:

Suprapunerea cu modificatorii de acces

Există trei modificatori de acces.

  1. public: Accesibil oriunde în program.
  2. privat: Accesibil doar din clasa părinte.
  3. protected: Accesibil din clasa de bază și clasa derivată.

După cum știm, metoda protejată este accesibilă dintr-o clasă de bază, iar clasa derivată ea poate fi făcută publică în subclasă, dar nu privată, deoarece privata este accesibilă doar în clasa părinte. De asemenea, dacă o metodă de clasă are un specific de acces ca public, metoda suprascriere din clasa derivată nu poate fi declarată ca privată și protejată

Exemplu de suprasolicitare folosind modificatori de acces

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

ieșire:

Suprapunerea cu cuvântul cheie final

Cuvântul cheie final este utilizat pentru clase și metode. Metode și clase, nu variabilele pot fi ignorate.

Metoda finală Suprasolicitare

Atunci când o metodă sau o clasă este declarată finală, atunci nu se poate face o suprapunere a acelei metode sau clase, de asemenea, moștenirea cu clasa nu este posibilă.

Exemplu de metodă de suprascriere folosind cuvântul cheie final

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

ieşire:

Suprapunerea clasei finale

O clasă declarată finală nu poate fi moștenită. O clasă finală are în plus metoda finală împreună cu alte metode. Dar, deoarece clasa în sine este declarată finală, nu se folosește declararea unei metode finale într-o clasă finală.

Exemplu de suprasolicitare a clasei folosind cuvântul cheie final

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

ieşire:

Articole recomandate

Acesta este un ghid de suprasolicitare în PHP. Aici vom discuta despre ce este important și funcționează PHP și diferite metode, împreună cu codul de probă. De asemenea, puteți consulta următoarele articole pentru a afla mai multe -

  1. Întrebări principale pentru interviu PHP
  2. Avantajele PHP
  3. Cariera în PHP
  4. Comenzi PHP
  5. Ghid de suprasolicitare în JavaScript
  6. Cum funcționează suprasolicitarea în C ++?
  7. Suprafață în OOPs | Nevoie de suprasolicitare a metodei
  8. Modificatori de acces în PHP
  9. Suprasolicitare în Java