9
votes

Comportement de la variable statique avec héritage

Je pose cette question pour la discussion.

Supposons que j'ai une hiérarchie de classe fluide xxx

si je crée l'objet de B B1, B2, B3; et C C1, C2, C3; et A A1, A2;

1.Prod varr est partagé sur tout l'objet mentionné ci-dessus ou une instance séparée pour un objet différent?

2.If B1 Objet Modifiez la valeur qu'il sera reflété pour C1 objet ou non.


0 commentaires

3 Réponses :


8
votes

Etant donné que VARR est statique (par opposition à des membres d'instance régulière), il n'y en a qu'un seul exemplaire qui appartient à la classe elle-même, pas d'instance. B :: VARR , C :: VARR ET A :: VARR Tous Access La même variable, il n'y a donc pas de copie faite pour chaque héritage classe non plus.


0 commentaires

11
votes

Oui, il sera partagé d'accrocher tout l'instance de toutes les catégories dérivées (B, C) et de base (a) ..

Une seule instance pour un objet statique sera créée et à tout endroit où l'objet sera référé. Donc, si vous changez à un endroit, cela signifie que le changement sera reflété à tout endroit où son être référé.


3 commentaires

Donc, si je change le VARR dans un objet, dites B1, puis lorsque j'accueille VARR en C1, obtiendra la valeur mise à jour de la valeur


Une seule instance pour un objet statique sera créée et, à tout moment, cet objet sera référé. Donc, si vous changez à un endroit, cela signifie que le changement sera reflété à tout endroit où son être référé.


Vous pouvez utiliser des modèles si vous en voulez un par B, C et A



1
votes

En tant que membres de données statiques et méthodes ne sont pas par objet, ils sont par classe. Cela signifie qu'un VARR est là pour la classe A.
Au moment où la classe B & C sont hérités publiquement d'A, ce qui rend B & N rien d'autre que spécialisé A. (a est-une relation)
Tous A, B & C partagera le même VARR

Scénario serait différent en cas d'héritage privé , où les B & C ne seraient pas spécialisés A. et B & C n'auront pas accès à un :: VARR


0 commentaires