Mis on PHP-s ülimuslik?

Ületamine on objektorienteeritud programmeerimise kontseptsioon, mis sarnaneb PHP-s selliste mõistetega nagu klass, objekt, kapseldamine, polümorfism, ülekoormamine jne. Funktsioonide ja klasside alistamine toimub siis, kui luuakse tuletatud klassis meetod, mis on sama, mis meetodil põhiklassis või vanemklassis. Mõlemal meetodil on sama nimi ja sama arv argumente.

Kuidas ülimuslik töötab?

  • Üleminek on mõiste, kus põhiklassi tuletatud klass sooritab sama toimingu nagu põhiklass. See võib olla seotud meetodite või klassidega. Kui see on meetod ülimuslik, siis leitakse meetodi parameetrite nimed, juurdepääsuspetsifikaator on sama, mis põhiklassi meetodil. Kui põhiklassist tuletatud alaklassis meetodi rakendamisel muudatusi ei leitud, öeldakse sel ajal, et alaklassi meetod on alusklassi meetodi alistanud.
  • Oletame, et on olemas klass nimega Isik, millel on oma andmete omadused ja meetodid. See on lapsevanem või põhiklassi inimene, kelle meetodit nimetatakse rääkima (). Nüüd on veel üks klass nimega töötaja, mis laiendab klassi Isik. Nüüd on sellel töötajate klassil oma andmeomadused ja meetodid ning ka sama meetod, mis vanemklassil, nt.speak ().
  • See, räägib () meetod on olemas nii põhiklassis kui ka tuletatud klassis.
  • Mis juhtub, siis, kui klass hetkestatakse või kui objekt luuakse, siis milline kõne () meetodist täidetakse, see tähendab, et see, mis räägitakse põhiklassist või räägitakse tuletatud klassist, sõltub klassi objektist kutsutakse.
  • Teisisõnu, kui luuakse Isikuklassi objekt, siis kutsutakse Isikuklassi kõne () meetod ja see täidetakse. Kui aga luuakse töötajate klassi objekt, siis rakendatakse tuletatud klassi kõne () meetod, mis alistab vanema klassi kõne () klassi.
  • Ja siin on näide sellest, kuidas alistamine toimub
  • Allpool toodud näites on kaks klassi, põhiklass ja tuletatud klass. Tuletatud klass laiendab põhiklassi. Need klassid käivitatakse ja luuakse kaks objekti $ obj1 ja $ obj2. $ obj1 on BaseClassi objekt ja $ obj2 on tuletatud klassi objekt. Lisaks nimetavad need objektid vastavates klassides deklareeritud meetodeid.
  • Siinkohal märkate, et põhiklassil ja tuletatud klassil on sama meetod nimega ABC (). Selle programmi käivitamisel märkate, et meetod ABC () on alusklassi meetodi ABC () alistanud.

Näide meetodi ülimusest

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äljund:

Juurdepääsumuunduritega alistamine

Juurdepääsu modifikaatoreid on kolm.

  1. avalik: juurdepääsetav kõikjal programmis.
  2. privaatne: juurdepääsetav ainult vanemklassist.
  3. kaitstud: juurdepääsetav põhiklassist ja tuletatud klassist.

Nagu me teame, on kaitstud meetodile juurdepääs põhiklassist ja tuletatud klassist saab selle alaklassis avalikustada, kuid mitte privaatseks, kuna privaatne on juurdepääsetav ainult vanemklassis. Ka siis, kui klassimeetodil on juurdepääsu spetsifikaat avalik, siis ei saa tuletatud klassi ülimuslikku meetodit kuulutada privaatseks ja kaitstuks

Juurdepääsumuundajate kasutamise ületamise meetodi näide

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äljund:

Üleminek lõplikule märksõnale

Lõplikku märksõna kasutatakse klasside ja meetodite jaoks. Meetodeid ja klasse, mitte muutujaid saab üle vaadata.

Lõplik meetod ülimuslik

Kui meetod või klass kuulutatakse lõplikuks, ei saa selle meetodi või klassi ülevõtmist teostada, samuti pole klassiga pärimine võimalik.

Näide lõpliku märksõna kasutamise meetodi ülimusest

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äljund:

Lõppklassi ületamine

Lõplikuks kuulutatud klassi ei saa pärida. Lõpuklassil on lõppmeetod koos teiste meetoditega. Kuid kuna klass ise kuulutatakse lõplikuks, pole lõppmeetodi kuulutamist lõpuklassis mingit kasu.

Klassi ületamise näide lõpliku märksõna abil

// 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äljund:

Soovitatavad artiklid

See on juhis PHP-s ülimuslikkuse saavutamiseks. Siin arutatakse, mis on PHP ja erinevate meetodite ning näidiskoodi jaoks ülimuslik ja töötav. Lisateabe saamiseks võite vaadata ka järgmisi artikleid -

  1. Põhilised PHP-intervjuu küsimused
  2. PHP eelised
  3. Karjäär PHP-s
  4. PHP käsud
  5. Juhend ülimuslikkuse kohta JavaScriptis
  6. Kuidas ülimuslik töötab C ++ -s?
  7. OOPides ülimuslik | Meetodi ülimuslikkus
  8. Juurdepääs modifikaatoritele PHP-s
  9. Ülekaalus Java

Kategooria: