La substitution est un concept de programmation orientée objet qui est similaire à un concept comme classe, objet, encapsulation, polymorphisme, surcharge, etc. en PHP. Le remplacement des fonctions et des classes est effectué lorsqu'une méthode dans la classe dérivée est créée, qui est la même que celle de la méthode dans la classe de base ou la classe parent. Ces deux méthodes ont le même nom et le même nombre d'arguments.
PUBLICITÉ Cours populaire dans cette catégorie DEVELOPPEUR PHP - Spécialisation | Série de 8 cours | 3 tests simulésCommencez votre cours de développement de logiciels libres
Développement Web, langages de programmation, tests de logiciels et autres
Explorons comment fonctionne la substitution en PHP.
L'exemple de substitution de méthode est écrit ci-dessous.
Code :
class BaseClass { public function ABC() { echo "<br /> In the base class"; } } class DerivedClass extends BaseClass { // override the method ABC() of base class public function ABC() { echo "<br />In the derived class"; } } $obj1 = new BaseClass; $obj1->ABC(); $obj2 = new DerivedClass; $obj2->ABC();
Sortie :
Il existe trois modificateurs d'accès.
Comme nous le savons, la méthode protégée est accessible depuis une classe de base et la classe dérivée, elle peut être rendue publique dans la sous-classe mais pas privée car private n'est accessible que dans la classe parent. De plus, si une méthode de classe a un spécificateur d'accès public, la méthode de substitution dans la classe dérivée ne peut pas être déclarée comme privée et protégée
Un exemple de remplacement à l'aide de modificateurs d'accès est écrit ci-dessous.
Code :
class BaseClass { private function ABC() { echo "<br/>In the base class Method : ABC"; } protected function XYZ() { echo "<br/>In the base class Method : XYZ"; } } class DerivedClass extends BaseClass { // overriding with public for wider accessibility public function ABC() { echo "<br/> In the derived class Method : ABC"; } // overriding method // with more accessibility public function XYZ() { echo "<br/>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();
Sortie :
Le mot-clé final est utilisé pour les classes et les méthodes. Les méthodes et les classes, et non les variables, peuvent être remplacées.
Lorsqu'une méthode ou une classe est déclarée comme finale, la substitution de cette méthode ou de cette classe ne peut pas être effectuée et l'héritage avec la classe n'est pas possible.
L'exemple de remplacement à l'aide du mot-clé final est écrit ci-dessous.
Code :
class BaseClass { // Final method – display // this cannot be overridden in base class final function display() { echo "<br /> In the Base class display function"; } /// method - ABC function ABC() { echo "<br /> In the Base cLass ABC function"; } } class DerivedClass extends BaseClass { function ABC() { echo "<br /> In the Derived class ABC function"; } } $obj1 = new DerivedClass; $obj1->display(); $obj1->ABC();
Sortie :
A class declared as final cannot be inherited. A Final Class further have final method along with other methods. But since the class itself is declared final there is no use of declaring a final method in a final class.
The example of class overriding using final keyword is written below.
Code:
// class declared as final cannot be overridden final class BaseClass { // method - ABC function ABC() { echo "<br> In the BaseClass Method ABC function"; } // Final method - display function display() { echo "<br> 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:
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!