как распределяется память, если используется наследование? - PullRequest
0 голосов
/ 10 февраля 2020

У меня есть класс

class A
{
   public void Greet()
   {
      Console.WriteLine("Hii");
   }
}

class B : A
{
   public void Greet2()
   {
      Console.WriteLine("Hello");
   }
}

class Program
{
   public static void main(string args[])
   {
      B b = new B();
      b.Greet();
      b.Greet2();
   }
}

Как будет выделяться память в пространстве кучи для базового класса и производного класса. Будут ли в производном классе все методы базового класса или объект базового класса?

1 Ответ

0 голосов
/ 10 февраля 2020

Будут ли в производном классе все методы базового класса

Память НЕ выделяется для методов вообще. Метод предназначен ТОЛЬКО для хранения, а объект включает указатель на тип. И ТИП - класс, а не экземпляр - имеет методы. Все методы получают невидимый указатель на память класса (this), если они не статичны c.

Когда объект создается, память для этого конкретного типа хранения выделяется, не больше, не меньше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...