0 votes

Classe de base abstraite et membres de données ? Comment fonctionne-t-elle ?

Une classe de base abstraite (ABC) peut avoir des données pour supporter les classes qui en héritent. Cependant, étant donné qu'il n'est pas possible d'instancier un objet d'une ABC, comment le compilateur gère-t-il ces données dans le cas où nous avons un certain nombre d'objets de classes dérivées qui héritent de l'ABC ? héritent de l'ABC. Les données sont-elles associées à l'objet de classe dérivé ?

0voto

Graviton Points 28358

Oui.

Un compilateur ne peut accepter qu'un type hérité qui a été instancié avec une classe dérivée, substantielle. Ceci est dû au fait que

public void RunInstantiate()
{
   IAbstract abc;
   abc = new Implement();   
}

abc pointera toujours vers un objet réel (de type Implement ).

0voto

Mongus Pong Points 6902

Si vous parlez de données statiques, alors ces données resteront associées à la classe de base. Il n'y aura toujours qu'une seule instance de ces données en mémoire, quel que soit le nombre de classes différentes qui en dérivent.

Les données non statiques seront associées à chaque instance de cette classe. Si vous créez 5 instances de cette classe, il y aura 5 instances de ces données en mémoire, chacune n'étant accessible que par son instance associée.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X