Dans la programmation orientée objet, l'héritage est le concept de base, permettant aux dérivés d'élargir et de modifier le comportement des classes de base. Lors de la définition de ces classes, les développeurs peuvent avoir besoin de réécrire ou de créer une nouvelle implémentation. Afin de clarifier cette différence, examinons les scènes suivantes:
Scène 1: classe de base
Cette grammaire déclare une méthode virtuelle dans la classe de base. La méthode virtuelle peut être réécrite dans la catégorie dérivée pour fournir une implémentation spécifique.
public virtual void DoIt();
Dans la méthode dérivée, l'utilisation de "Nouveau" créera une méthode nouvelle et indépendante, et son nom est le même que la méthode de la classe de base. Cependant, cela n'est pas considéré comme réécrit, et lorsque la classe de base est appelée, le comportement de la méthode de la classe de base n'affectera pas le comportement de la classe de base.
<景> Scène 2: Classe de basepublic new void DoIt();
Il s'agit d'une méthode non utile et ne peut pas être réécrite dans la classe dérivée. Les dérivés doivent utiliser le "nouveau" modificateur pour réaliser une nouvelle méthode avec le même nom. <景> Scène 2: Classe de division
public void DoIt();
Les modificateurs de "remplacement" indiquent que la méthode de la classe dérivée consiste à réécrire une autre méthode de la même signature dans la classe de base. Lorsque l'appel est appelé par une classe de base, la méthode de réécriture sera exécutée.
<际> Différences réelles
public override void DoIt();
Dans cet exemple, "Derive.doiit ()" réécrit "base.doiit ()", et lorsque la méthode "B" variable "DOIT ()" est appelée de l'objet "B" Dériable "dérivé", il sera appelé pour l'appeler.
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!