Maison  >  Article  >  développement back-end  >  C Résumé des points clés de l'examen Partie 8 - Héritage 1

C Résumé des points clés de l'examen Partie 8 - Héritage 1

黄舟
黄舟original
2017-01-16 11:40:191087parcourir

1 Différentes méthodes d'héritage modifieront les attributs d'accès des membres hérités.

Les variables et méthodes publiques des membres modifiés peuvent être utilisées à la fois à l'intérieur et à l'extérieur de la classe.

Les variables et méthodes membres protégées sont utilisées à l'intérieur de la classe et dans les sous-classes héritées, et ne peuvent pas être utilisées en dehors de la classe. (Pour une utilisation dans la famille, pour l'héritage !)

Les variables et méthodes de membres privés modifiés ne peuvent être utilisées qu'à l'intérieur de la classe, pas en dehors de la classe

1) En C La méthode d'héritage affectera les attributs d'accès externes de la sous-classe

héritage public : les membres de la classe parent conservent le niveau d'accès d'origine dans la sous-classe

héritage privé : les membres de la classe parent deviennent des membres privés

héritage protégé : les membres publics de la classe parent deviendront protégés

les membres protégés de la classe parent seront toujours protégés

les membres privés de la classe parent seront toujours privés

2) Les membres privés existent toujours dans les sous-classes, mais sont inaccessibles. Quelle que soit la manière dont vous héritez d’une classe de base, une classe dérivée ne peut pas utiliser directement les membres privés de la classe de base.

3) Table attributaire d'accès externe de sous-classe en C

Niveau d'accès des membres de la classe parent

Méthode d'héritage

 public(继承方式)    proteced(继承方式)    private(继承方式)    
public   public   proteced  private    
proteced   proteced   proteced   private    
private   private   private   Private

Principe des trois regards :

La méthode d'héritage en C (publique, privée, protégée) affectera les attributs d'accès externes des sous-classes

Juger une certaine phrase, Si elle est accessible

1) Regardez l'instruction appelante Cette phrase est écrite à l'intérieur et à l'extérieur de la sous-classe

2) Regardez comment la sous-classe hérite de la classe parent (publique, privée). , protégé)

3) Regardez les niveaux d'accès (public, privé, protégé) dans la classe parent

Principes de définition du niveau d'accès pour les membres de la classe dérivée

Réflexion : Comment bien utiliser public, protected et private pour déclarer les niveaux d'accès des membres ?

1. Les membres auxquels le monde extérieur doit accéder sont directement définis comme publics

2. Les membres accessibles uniquement dans la classe actuelle sont définis comme privés
3. Ils ne sont accessibles que dans la classe actuelle. Les membres accessibles dans les classes et sous-classes sont définis comme protégés, et les droits d'accès des membres protégés sont compris entre public et privé.


2 Principe de compatibilité des types

La règle de compatibilité des types signifie que partout où un objet de classe de base est requis, un objet d'une classe dérivée publique peut être utilisé à la place. Grâce à l'héritage public, la classe dérivée obtient tous les membres de la classe de base à l'exception du constructeur et du destructeur. De cette façon, la classe dérivée publique a en fait toutes les fonctions de la classe de base. Tous les problèmes que la classe de base peut résoudre peuvent être résolus par la classe dérivée publique. Les substitutions mentionnées dans les règles de compatibilité de types incluent les situations suivantes :


Un objet de sous-classe peut être utilisé comme objet de classe parent

Un objet de sous-classe peut être directement affecté à un objet de classe parent

Les objets de sous-classe peuvent directement initialiser les objets de classe parent

Les pointeurs de classe parent peuvent pointer directement vers des objets de sous-classe

Les références de classe parent peuvent directement faire référence à des objets de sous-classe

Après substitution, dériver Les objets Class peuvent être utilisés comme objets de la classe de base, mais seuls les membres hérités de la classe de base peuvent être utilisés.

Les règles de compatibilité de types sont l'un des fondements importants du polymorphisme.

Signification de premier niveau :
Le pointeur de classe de base 1-1 (référence) pointe vers l'objet de sous-classe


Parent *p = Null;
p = &c1;
p->printp();
1-2 指针做函数参数
howToPrint(&p1);
howToprint(&c1);
1-3引用做函数参数
howToprint2(p1);
howToprint2(c1);
Signification de deuxième niveau


Vous pouvez laisser les objets de la classe parent initialiser les objets de la sous-classe

Parent p3 = c1;

Modèle d'objet en trois héritages

Question : Comment initialiser les membres de la classe parent ? Quelle est la relation entre les constructeurs de la classe parent et de la sous-classe ?

Lors de la construction de l'objet de sous-classe, vous devez appeler le constructeur de la classe parent pour initialiser ses membres hérités

Dans l'analyse de l'objet de la sous-classe Lors de la construction, vous devez appeler le destructeur de la classe parent pour nettoyer ses membres hérités


Le principe de construction et d'appel du destructeur en héritage (de haut en bas lors de l'initialisation, d'abord Papa a encore un fils)

1. Lorsque l'objet de sous-classe est créé, le constructeur de la classe parent sera appelé en premier


2. Une fois l'exécution du constructeur de la classe parent terminée, le Le constructeur de la sous-classe sera exécuté

3 Lorsque le constructeur de la classe parent a des paramètres, l'appel doit être affiché dans la liste d'initialisation de la sous-classe

4. le destructeur est opposé à celui du constructeur

Ce qui précède est le huitième résumé des points clés de la révision C - l'héritage. Pour plus de contenu connexe, veuillez faire attention au site Web chinois de PHP (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