Mi a nyomós PHP?

Az felülbírálás egy objektum-orientált programozási koncepció, amely hasonló a fogalomhoz, mint például a osztály, az objektum, a beágyazás, a polimorfizmus, a túlterhelés stb. A PHP-ben. A függvények és osztályok felülbírálása akkor történik, amikor a származtatott osztályban létrehozunk egy módszert, amely megegyezik az alap- vagy a szülőosztályban alkalmazott módszerrel. Mindkét módszernek ugyanaz a neve és azonos száma argumentuma.

Hogyan működik a felülbírálás?

  • A felülbírálás olyan koncepció, amikor az alaposztály származtatott osztálya ugyanazt a műveletet hajtja végre, mint egy alaposztály. Ez az elsődleges módszer lehet módszereken vagy osztályokon. Ha ez a módszer felülbírálja, akkor a módszer nevének, a paramétereknek a hozzáférési specifikátora megegyezik a szülő osztály módszerével. Ahol az alaposztályból származó alosztályban a módszer megvalósításában nem történt változás, akkor azt mondják, hogy az alosztály módszere felülbírálta az alaposztály módszerét.
  • Tegyük fel, hogy van egy Személy nevű osztály, amely rendelkezik saját adattulajdonságokkal és módszerekkel. Ez a szülő vagy az alaposztályú személy, aki beszélő () módszerrel rendelkezik. Most van még egy Munkavállalói osztály, amely kiterjeszti a Személy osztályt. Most ez a Munkavállalói osztály rendelkezik saját adattulajdonságokkal és módszerekkel, és ugyanolyan módszerrel rendelkezik, mint a szülőosztály, például a.speak ().
  • Ez a speaks () módszer jelen van az alaposztályban és a származtatott osztályban is.
  • Most akkor történik meg, amikor az osztályt pillanatra állítják be, vagy amikor az objektum létrehozásra kerül, a speak () módszer közül melyik kerül végrehajtásra, azaz az, hogy az alaposztályról beszélnek, vagy a származtatott osztályról beszélnek, az osztály objektumától függ. nak, nek hívják.
  • Más szavakkal, ha létrehozunk egy Személyosztály objektumát, akkor meghívjuk a Személy osztály beszéd () módszerét, és ezért végrehajtjuk. De ha létrejön a Munkavállalói osztály objektuma, akkor a származtatott osztály beszéd () metódusát kell végrehajtani, amely felülbírálja a szülő osztály beszéd () osztályát.
  • És itt van, hogy egy példával hogyan történik a felülbírálás
  • Az alábbi példában két osztály van: alap osztály és egy származtatott osztály. A származtatott osztály kiterjeszti az alaposztályt. Ezeket az osztályokat elindítják, és két $ obj1 és $ obj2 objektumot hoznak létre. A $ obj1 a BaseClass és a $ obj2 egy származtatott osztály tárgya. Ezek az objektumok tovább hívják az osztályukban deklarált módszereket.
  • Itt megfigyelheti, hogy az alaposztály és a származtatott osztály ugyanazt az ABC () nevű módszert használja. A program végrehajtásakor észreveszi, hogy az ABC () módszer felülbírálta az ABC () bázisosztály módszerét.

Példa a módszer felülbírálására

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

Kimenet:

A hozzáférés-módosítókkal történő felülbírálás

Három hozzáférési módosító van.

  1. nyilvános: A program bárhonnan elérhető.
  2. privát: Csak a szülői osztályból érhető el.
  3. védett: Hozzáférhető az alaposztályból és a származtatott osztályból.

Mint tudjuk, a védett módszer az alaposztályból elérhető, a származtatott osztály pedig az alosztályban nyilvánosságra hozható, de nem privát, mivel a privát csak a szülő osztályban elérhető. Ha az osztály metódusának nyilvános hozzáférési specifikációja van, akkor a származtatott osztályban az elsődleges módszer nem nyilvánítható privátnak és védettnek.

Példa a hozzáférési módosítók használatával történő felülbírálásra

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

Kimenet:

A végső kulcsszóval történő felülbírálás

Az utolsó kulcsszót osztályokhoz és módszerekhez használják. A módszerek és osztályok, nem pedig a változók felülbírálhatók.

A végső módszer felülbírálása

Ha egy módszert vagy osztályt véglegesnek nyilvánítanak, akkor a módszer vagy osztály felülbírálása nem hajtható végre, az osztálylal való öröklés szintén nem lehetséges.

Példa a végső kulcsszó használatával történő felülbírálásra

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

Kimenet:

A végső osztály felülbírálása

A véglegesnek nyilvánított osztály nem örökölhető. Egy végső osztály további módszerrel rendelkezik a végső módszerrel. Mivel maga az osztály végsőnek nyilvánul, nincs értelme a végső módszert a végső osztályban deklarálni.

Példa az osztályok felülírására a végső kulcsszó használatával

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

Kimenet:

Ajánlott cikkek

Ez egy útmutató a PHP felülbírálására. Itt megvitatjuk, mi a PHP és a különféle módszerek felülírása és működése, valamint a mintakód. A következő cikkeket is megnézheti további információkért -

  1. Alapvető PHP interjúkérdések
  2. A PHP előnyei
  3. Karrier a PHP-ben
  4. PHP parancsok
  5. Útmutató a felülíráshoz a JavaScriptben
  6. Hogyan működik a felülbírálás a C ++-ban?
  7. Az OOP felülbírálása | A módszer felülbírálása
  8. Hozzáférés-módosítók a PHP-ben
  9. A Java alapon érvényes

Kategória: