Héritage en php

Héritage en php
Les trois principales caractéristiques de la programmation orientée objet comprennent l'encapsulation, l'héritage et le polymorphisme. Lors de la programmation, vous devrez peut-être utiliser plusieurs fois un certain code et l'utilisation de l'héritage réduit manuellement la répétition du code de réécriture en réutilisant le code. L'héritage est une méthode pour créer une nouvelle classe en héritant d'une classe de base. L'objet de la nouvelle classe pourra accéder à tous les membres de la classe de la nouvelle classe, ainsi que la classe de base, par l'héritage. De cette façon, le même code peut être réutilisé plusieurs fois en l'écrivant une seule fois. Php utilise le étendre mot-clé pour l'héritage. Ce tutoriel montre comment implémenter l'héritage à l'aide du script PHP.

Syntaxe de l'héritage

La syntaxe de l'héritage est illustrée ci-dessous.

Classe newclass étend OldClass


Ici, newclass est appelé le enfant, dérivé, ou sousclasse; et vieilleclace est appelé le parent, base, ou superclasse. La partie suivante de ce tutoriel montre quelques exemples d'utilisation des héritages en php.

Exemple 1: Utilisation simple de l'héritage

Le script suivant montre une utilisation simple de l'héritage dans le script PHP. Dans le script, Employé est la classe parent qui contient deux variables de classe, et le setData () la méthode est utilisée pour initialiser les variables de classe. Le Exécutif La classe est la classe d'enfants qui est héritée du Employé classe en utilisant le étendre mot-clé. Il contient une variable de classe et une méthode nommée afficher les détails() Pour imprimer les variables de classe des classes parentales et enfants. Après avoir créé l'objet de la classe enfant, les méthodes des classes parentales et enfants seront appelées à l'aide de l'objet de classe enfant.

// classe parent
Employé de classe
// Variables de classe parent
Nom $ public $;
Département public $;
// Initialiser les données de base
fonction publique setData ()

$ this-> name = "John Abraham";
$ this-> Department = "hr";


// classe d'enfants
L'exécutif de classe étend les employés
// Variable de classe enfant
public $ désignation = "Executive marketing";
// Imprime les détails des employés
fonction publique showdetails ()

if ($ this-> nom != "" && $ this-> désignation != "" && $ this-> département != "")

écho "Détails de l'employé:
"
Echo "Nom:".$ this-> nom."
"
Écho "Désignation:".$ this-> désignation."
"
Echo "Département:".$ this-> département."
"



// Créer un objet la classe enfant
$ obJemp = new Executive ();
// appelle la méthode de la classe parent
$ obJemp-> setData ();
// appelle la méthode de classe infantile
$ obJemp-> showdetails ();
?>

Sortir

La sortie suivante apparaîtra après l'exécution du script. Ici, le nom et les valeurs du département des employés sont imprimés à partir de la classe parentale, et la valeur de désignation des employés est imprimée à partir de la classe infantile.

Exemple 2: Héritage avec la méthode remplacée

L'étouffement de la méthode se produit lorsqu'une méthode avec le même nom est déclarée à la fois dans le parent et la classe enfant. Le script suivant montre l'héritage avec la méthode remplacée à l'aide du script PHP. Ici le afficher les détails() la méthode est déclarée à la fois dans la classe parent et la classe enfant. L'objet de la classe parent accédera au afficher les détails() Méthode de la classe parent, et l'objet de la classe infantile accédera au afficher les détails() Méthode de la classe enfant.

// classe parent
Employé de classe
// Variables de classe parent
Nom $ public $;
Département public $;
// Initialiser les données
fonction __construct ()

$ this-> name = "Janifer Lopez";
$ this-> Department = "Sales";

// Imprime les détails des employés
fonction publique showdetails ()

écho "Détails des employés: [de la classe parent]
"
Echo "Nom:".$ this-> nom."
"
Echo "Département:".$ this-> département."

"


// classe d'enfants
L'exécutif de classe étend les employés
// Variable de classe enfant
public $ désignation = "Sales Executive";
// Imprime les détails des employés
fonction publique showdetails ()

écho "Détails des employés: [de la classe infantile]
"
Echo "Nom:".$ this-> nom."
"
Écho "Désignation:".$ this-> désignation."
"
Echo "Département:".$ this-> département."
"


// Créer un objet de classe parent
$ obJemployee = nouvel employé ();
// appelle la méthode de la classe parent
$ obJemployee-> showdetails ();
// Créer un objet de classe enfant
$ objexecutive = new Executive ();
// appelle la méthode de classe infantile
$ objexecutive-> showdetails ();
?>

Sortir

La sortie suivante apparaîtra après l'exécution du script. Quand le afficher les détails() La méthode est appelée avec l'objet de la classe parent, il affichera la sortie de la classe parent. Quand le afficher les détails() La méthode est appelée avec l'objet de la classe enfant, il montrera la sortie de la classe enfant.

Exemple 3: Appelez le constructeur parent à l'intérieur du constructeur enfant

Lorsque le parent et la classe enfant contiennent une méthode de constructeur, la classe infantile peut appeler le constructeur de la classe parent. Le script suivant montre comment appeler le constructeur de la classe parent du constructeur de la classe enfant. Le parent :: __ Construct () La déclaration est utilisée pour appeler le constructeur parent.

// classe parent
Employé de classe
// Variables de classe parent
Nom $ public $;
Département public $;
// Initialiser les données
fonction __construct ($ name, $ Dept)

$ this-> name = $ name;
$ this-> Department = $ Dept;


// classe d'enfants
L'exécutif de classe étend les employés
// Variables de classe infantile
Public $ désignation;
Salaire public $;
// Initialiser les données
fonction __construct ($ name, $ département, $ désignation, $ salaire)

// appelle le constructeur de classe parent
Parent :: __Construct ($ Name, $ département);
$ this-> désignation = $ désignation;
$ this-> salaire = $ salaire;

// Imprime les détails des employés
fonction publique showdetails ()

écho "Détails de l'employé:
"
Echo "Nom:".$ this-> nom."
"
Écho "Désignation:".$ this-> désignation."
"
Echo "Département:".$ this-> département."
"
Echo "Salaire: $".$ this-> salaire."
"


// Créer un objet de classe enfant
$ objexecutive = New Executive («Jafar Iqbal», «Marketing», «Marketing Executive», 4500);
// appelle la méthode de classe infantile
$ objexecutive-> showdetails ();
?>

Sortir

La sortie suivante apparaîtra après l'exécution du script. Ici, le nom et le département des employés sont initialisés par le constructeur parent, et la désignation et le salaire des employés sont initialisés par le constructeur enfant.

Exemple 4: Implémentez l'héritage hiérarchique

Le script suivant montre comment implémenter l'héritage hiérarchique dans PHP. Ici, classe2 est créé par héritage classe 1, et classe3 est créé par héritage classe2. Dans cet exemple, trois méthodes sont définies en trois classes. Le classe3 L'objet est créé pour appeler les méthodes de toutes les classes.

// classe parent
classe classe 1
fonction showMethod1 ()

Echo "C'est la classe parentale
"


// classe d'enfants
classe Classe 2 étend la classe 1
fonction showMethod2 ()

Echo "C'est la classe d'enfants
"


// Grand enfant classe
classe Classe3 étend la classe 2
fonction showMethod3 ()

Echo "C'est la classe Grand Child";


$ object = new class3 ();
$ object-> showMethod1 ();
$ object-> showMethod2 ();
$ object-> showMethod3 ();
?>

Sortir

La sortie suivante apparaîtra après l'exécution du script. Ici, la première ligne de texte est apparue à partir de classe 1, La deuxième ligne de texte est apparue à partir de classe2, Et la troisième ligne de texte est apparue à partir de classe3.

Didacticiel vidéo

Conclusion

Ce tutoriel vous a montré plusieurs types d'héritages différents à l'aide du script PHP. Après avoir lu cet article, vous devez comprendre le concept d'hérédité et ses utilisations de base dans PHP Script.