Wat is opheffen in PHP?

Overschrijven is een objectgeoriënteerd programmeerconcept dat vergelijkbaar is met een concept zoals klasse, object, inkapseling, polymorfisme, overbelasting enz. In PHP. Het overschrijven van functies en klassen wordt gedaan wanneer een methode in de afgeleide klasse wordt gemaakt die hetzelfde is als die van de methode in de basisklasse of bovenliggende klasse. Beide methoden hebben dezelfde naam en hetzelfde aantal argumenten.

Hoe werkt opheffen?

  • Overschrijven is een concept waarbij de afgeleide klasse van de basisklasse dezelfde actie uitvoert als die van een basisklasse. Dit overschrijven kan op methoden of klassen zijn. Als het de methode overschrijft, dan is de naam van de methode de parameters, de toegangsspecificatie blijkt hetzelfde te zijn als die van de methode van de bovenliggende klasse. Wanneer er geen verandering wordt gevonden in de implementatie van de methode in de subklasse afgeleid van de basisklasse, wordt op dat moment gezegd dat de methode van de subklasse de methode van de basisklasse heeft overschreven.
  • Stel dat er een klasse met de naam Persoon is die zijn eigen gegevenseigenschappen en -methoden heeft. Dit is de ouder of basisklasse Persoon met een methode die speak () wordt genoemd. Nu is er nog een klasse genaamd Werknemer die de klasse Persoon uitbreidt. Nu heeft deze klasse Employee zijn eigen gegevenseigenschappen en -methoden en heeft deze ook een methode die hetzelfde is als die van de bovenliggende klasse eg.speak ().
  • Deze methode speaks () is aanwezig in de basisklasse en ook in de afgeleide klasse.
  • Wat er gebeurt is wanneer de klasse wordt geïnstantieerd of wanneer het object wordt gemaakt, welke methode van speak () wordt uitgevoerd, wat betekent dat spreken van de basisklasse of spreken van de afgeleide klasse wordt uitgevoerd, is afhankelijk van het object van de klasse wordt genoemd.
  • Met andere woorden, als een object van de klasse Person wordt gemaakt, wordt de methode speak () van de klasse Person aangeroepen en wordt deze daarom uitgevoerd. Maar als het object van de klasse Werknemer wordt gemaakt, wordt de methode speak () van de afgeleide klasse uitgevoerd, die de klasse speak () van de bovenliggende klasse overschrijft.
  • En hier is hoe opheffen plaatsvindt met een voorbeeld
  • In het onderstaande voorbeeld zijn er twee klassen, basisklasse en afgeleide klasse. De afgeleide klasse breidt de basisklasse uit. Deze klassen worden geïnitieerd en twee objecten $ obj1 en $ obj2 worden gemaakt. $ obj1 is een object van BaseClass en $ obj2 is een object van een afgeleide klasse. Deze objecten noemen verder de methoden die in hun respectieve klassen zijn aangegeven.
  • Hier ziet u dat de basisklasse en de afgeleide klasse dezelfde methode hebben die ABC () wordt genoemd. Wanneer u dit programma uitvoert, zult u merken dat de ABC () -methode de basisklasse-methode ABC () heeft overschreven.

Voorbeeld van methode negeren

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

Output:

Overschrijven met toegangsmodificaties

Er zijn drie toegangsmodificaties.

  1. openbaar: overal toegankelijk in het programma.
  2. privé: alleen toegankelijk vanaf de bovenliggende klasse.
  3. beschermd: toegankelijk vanaf de basisklasse en de afgeleide klasse.

Zoals we weten, is de beveiligde methode toegankelijk vanuit een basisklasse en de afgeleide klasse. Deze methode kan openbaar worden gemaakt in de subklasse, maar niet privé, omdat privé alleen toegankelijk is in de bovenliggende klasse. Ook als een klassemethode een toegangsspecificatie als openbaar heeft, kan de overheersende methode in de afgeleide klasse niet als privé en beschermd worden verklaard

Voorbeeld van methode opheffen met toegangsmodificaties

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

output:

Overschrijven met laatste trefwoord

Het laatste trefwoord wordt gebruikt voor klassen en methoden. Methoden en klassen, geen variabelen kunnen worden overschreven.

Laatste methode negeren

Wanneer een methode of een klasse als definitief wordt verklaard, kan het overschrijven van die methode of klasse niet worden uitgevoerd. Overerving met de klasse is niet mogelijk.

Voorbeeld van methode negeren met eindwoord

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

Output:

Laatste klas opheffen

Een als definitief verklaarde klasse kan niet worden geërfd. Een laatste klas heeft verder een definitieve methode samen met andere methoden. Maar aangezien de klasse zelf als definitief wordt verklaard, heeft het geen zin om een ​​definitieve methode in een definitieve klasse te verklaren.

Voorbeeld van het negeren van klassen met behulp van het laatste trefwoord

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

Output:

Aanbevolen artikelen

Dit is een gids voor overschrijven in PHP. Hier bespreken we wat PHP en verschillende methoden overschrijft en werkt, samen met voorbeeldcode. U kunt ook de volgende artikelen bekijken voor meer informatie -

  1. Core PHP Interview Vragen
  2. Voordelen van PHP
  3. Carrière in PHP
  4. PHP-opdrachten
  5. Handleiding voor overschrijven in JavaScript
  6. Hoe werkt Overriding in C ++?
  7. Overschrijven in OOP's | Noodzaak voor methode overschrijven
  8. Toegang tot modificaties in PHP
  9. Overschrijven in Java