Kaj je prevladujoče v PHP?

Prevladovanje je objektno usmerjeni programski koncept, ki je podoben konceptu, kot so Razred, Objekt, Inkapsulacija, Polimorfizem, Preobremenitev itd. V PHP. Preglasitev funkcij in razredov se opravi, ko se ustvari metoda v izpeljanem razredu, ki je enaka metodi v osnovnem razredu ali nadrejenem razredu. Obe metodi imata isto ime in enako število argumentov.

Kako deluje prevladovanje?

  • Prevladovanje je koncept, pri katerem izpeljani razred osnovnega razreda izvaja enako dejanje kot osnovni razred. To prevladovanje je lahko pri metodah ali razredih. Če je metoda preglasna, potem ime parametrov metode, se ugotovi, da je specifikator dostopa enak kot metoda nadrejenega razreda. Kadar pri izvajanju metode v podrazredu, ki izhaja iz osnovnega razreda, ni bilo sprememb, takrat se pravi, da je metoda podrazreda nadomeščala metodo osnovnega razreda.
  • Recimo, da obstaja razred, imenovan Person, ki ima lastne podatkovne lastnosti in metode. To je oseba starševskega ali osnovnega razreda z metodo, ki se imenuje speak (). Zdaj obstaja še en razred, imenovan Employee, ki razširja razred Person. Zdaj ima ta razred zaposlenih svoje lastnosti in metode podatkov in ima tudi metodo, enako kot nadrejeni razred eg.speak ().
  • Ta metoda govori () je prisotna v osnovnem razredu in tudi v izpeljanem razredu.
  • Zdaj se zgodi, ko je razred instanciran ali ko je ustvarjen predmet, katera od metode speak () bo izvedena, kar pomeni, da se govori o osnovnem razredu ali govori o izpeljanem razredu, je odvisno od predmeta razreda je poklican.
  • Z drugimi besedami, če je ustvarjen objekt razreda Person, potem se imenuje metoda speak () razreda Person in se zato izvede. Če pa je predmet razreda Employee ustvarjen, se izvede metoda speak () izpeljanega razreda, ki preglasi razred speak () nadrejenega razreda.
  • In tukaj je, kako prevladujejo primeri s primerom
  • V spodnjem primeru sta dva razreda, osnovni in izpeljani razred. Izvedeni razred podaljša osnovni razred. Ti razredi so inicirani in ustvarjena sta dva predmeta $ obj1 in $ obj2. $ obj1 je objekt BaseClass in $ obj2 je objekt izpeljanega razreda. Ti predmeti kličejo tudi metode, navedene v njihovih razredih.
  • Tu boste opazili, da imata osnovni razred in izpeljani razred isto metodo, imenovano ABC (). Ko izvajate ta program, boste opazili, da je metoda ABC () preglasila metodo osnovnega razreda ABC ().

Primer prevladovanja metode

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

Izhod:

Prevladujejo z Modifikatorji dostopa

Obstajajo trije modifikatorji dostopa.

  1. javno: Dostopno od kjer koli v programu.
  2. zasebno: Dostopno samo iz nadrejenega razreda
  3. zaščiteno: Dostopno od osnovnega in izpeljanega razreda.

Kot vemo, je zaščitena metoda dostopna iz osnovnega razreda in iz nje izpeljanega razreda se lahko objavi v podrazredu, ni pa zasebna, zasebna pa je dostopna le v nadrejenem razredu. Tudi če ima metoda razreda dostopna specifikacija kot javna, metode prevladovanja v izpeljanem razredu ni mogoče razglasiti za zasebno in zaščiteno

Primer preglasovanja metode z uporabo Modifikatorjev dostopa

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

izhod:

Prevladovanje s končno ključno besedo

Končna ključna beseda se uporablja za razrede in metode. Metode in razrede, ne pa spremeniti spremenljivk.

Končna metoda prevlada

Če je metoda ali razred razglašen za končnega, preglasitve na tej metodi ali razredu ni mogoče izvesti, tudi dedovanje s tem razredom ni mogoče.

Primer prevladovanja metode z uporabo ključne besede

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

Izhod:

Prevladovanje končnega razreda

Razreda, ki je razglašen za končnega, ni mogoče podedovati. Končni razred ima poleg tega tudi končno metodo. Ker pa je sam razred razglašen za končnega, razglasitve končne metode v končnem razredu ni smiselno.

Primer prevladovanja razreda s končno ključno besedo

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

Izhod:

Priporočeni članki

To je vodnik za Prevlado v PHP. Tukaj razpravljamo o tem, kaj prevlada in deluje PHP in različne metode, skupaj z vzorčno kodo. Če želite izvedeti več, si oglejte tudi naslednje članke -

  1. Temeljna vprašanja o intervjuju za PHP
  2. Prednosti PHP
  3. Kariera v PHP
  4. PHP ukazi
  5. Vodnik za preglasitev v JavaScript
  6. Kako prevladovanje deluje v C ++?
  7. Prevladujoče v OOP | Potreba po prevladovanju metod
  8. Dostop do modifikatorjev v PHP
  9. Prevladovanje v Javi