Maison  >  Article  >  développement back-end  >  c Résumé des points clés de la revue n°9 - Héritage 2

c Résumé des points clés de la revue n°9 - Héritage 2

黄舟
黄舟original
2017-01-16 11:47:051112parcourir

Méthodes de gestion des variables membres de même nom en héritage

1. Lorsqu'une variable membre d'une sous-classe a le même nom qu'une variable membre d'une classe parent

2. la sous-classe hérite toujours d'un membre du même nom de la classe parent

3. Distinguer les membres du même nom dans la sous-classe via le discriminateur de portée : (utiliser les membres de la classe de base avec le même nom dans la classe dérivée. classe et utilisez explicitement le qualificatif de nom de classe) ​​

4 , les membres portant le même nom sont stockés à différents endroits de la mémoire

c Résumé des points clés de la revue n°9 - Héritage 2

c Résumé des points clés de la revue n°9 - Héritage 2

2. Le mot-clé static dans les classes dérivées

héritage Que se passera-t-il s'il est combiné avec le mot-clé static ?

Connaissances théoriques

Ø Les membres statiques définis par la classe de base seront partagés par toutes les classes dérivées

Ø Selon les caractéristiques d'accès des membres statiques eux-mêmes et l'héritage méthode de la classe dérivée, dans Il existe différentes propriétés d'accès dans la hiérarchie des classes (se conformer au contrôle d'accès des classes dérivées)

Ø Pour accéder aux membres statiques d'une classe dérivée, utilisez le formulaire suivant pour indiquer explicitement :

Nom de la classe :: membre

ou accédez au nom de l'objet via l'objet Membres

c Résumé des points clés de la revue n°9 - Héritage 2

c Résumé des points clés de la revue n°9 - Héritage 2

c Résumé des points clés de la revue n°9 - Héritage 2

Résumé : Le constructeur par défaut est privé


Concept d'héritage multiple

Ø La relation d'héritage dans laquelle une classe a plusieurs classes de base directes est appelé héritage multiple

Ø Syntaxe de déclaration d'héritage multiple

nom de classe dérivée de classe : nom de classe de base de contrôle d'accès 1, nom de classe de base de contrôle d'accès 2, …, nom de classe de base de contrôle d'accès n

{

Déclaration de données membres et de fonctions membres

};

Ø La classe C peut hériter des membres de la classe A et de la classe B en même temps en fonction de l'accès contrôler, et ajouter

ses propres membres




Construction de classes dérivées et accès à l'héritage multiple

Ø Constructeurs de classes dérivées de plusieurs classes de base peut utiliser l'initialisation pour appeler le constructeur de la classe de base afin d'initialiser les données membres

Ø Exécution L'ordre est similaire au cas des constructeurs à héritage unique. L'ordre dans lequel plusieurs constructeurs de classes de base directes sont exécutés dépend de l'ordre dans lequel chaque classe de base héritée est spécifiée lors de la définition de la classe dérivée. c Résumé des points clés de la revue n°9 - Héritage 2

Ø Un objet de classe dérivé a plusieurs membres de classe de base directs ou indirects. Il n’y aura aucune ambiguïté lors de l’accès à des membres portant des noms différents. Si différentes classes de base ont des membres portant le même nom, ils doivent être identifiés lors de l'accès aux objets de classe dérivée.







Deux héritages virtuels

c Résumé des points clés de la revue n°9 - Héritage 2Si une classe dérivée dérive de plusieurs classes de base, et que ces classes de base ont un commun classe de base, lors de l'accès au nom déclaré dans la classe de base, une ambiguïté peut survenir

c Résumé des points clés de la revue n°9 - Héritage 2

Analyse :

c Résumé des points clés de la revue n°9 - Héritage 2Résumé :

Ø Si une classe dérivée est dérivée de plusieurs classes de base et que ces classes de base ont une classe de base

commune, alors la classe de base Lors de l'accès au nom déclaré dans la classe, c Résumé des points clés de la revue n°9 - Héritage 2

une ambiguïté peut survenir


Ø S'il existe une classe de base commune sur plusieurs chemins d'héritage, alors quelque part dans le chemin d'héritage

Point de convergence, cette classe de base publique générera plusieurs sous-classes de base -objets dans l'objet de la classe dérivée

Ø Pour que cette classe de base publique ne génère qu'un seul sous-objet dans la classe dérivée, vous devez déclarer cette classe de base

comme héritage virtuel, faisant cette classe de base est une classe de base virtuelle.

Ø La déclaration d'héritage virtuel utilise le mot-clé virtual






Expérience : Notez qu'après avoir ajouté le mot-clé virtual, le constructeur est appelé un certain nombre de fois.

3 Résumé de l'héritage

Ø L'héritage est une méthode importante pour réaliser la réutilisation de logiciels dans la programmation orientée objet. Les programmeurs peuvent définir de nouvelles classes dérivées basées sur les classes de base existantes.

Ø Une classe dérivée avec un héritage unique n'a qu'une seule classe de base. Une classe dérivée avec héritage multiple possède plusieurs classes de base.

Ø L'accès des classes dérivées aux membres de la classe de base est déterminé par la méthode d'héritage et les propriétés des membres.

Ø Lors de la création d'un objet de classe dérivée, appelez d'abord le constructeur de la classe de base pour initialiser les membres de la classe de base dans la classe dérivée. L’ordre dans lequel les destructeurs sont appelés est l’inverse de l’ordre dans lequel les constructeurs sont appelés.

Ø C fournit un mécanisme d'héritage virtuel pour éviter toute ambiguïté dans l'accès des membres dans les relations d'héritage de classe.

Ø L'héritage multiple fournit de puissantes fonctions de réutilisation de logiciels, mais augmente également la complexité du programme.

Ce qui précède est le neuvième résumé des points de révision c - héritage deux. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn