Наследование. Как сделать так, чтобы присвоение полей исполнилось только в производном классе? - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. При создании экземпляра
Листинг программы
  1. DerivedClass instance = new DerivedClass();
С начало выполняется присвоение полям значений в базовом классе, затем в производном. Походу, конструктор производного класса неявно вызывает конструктор по умолчанию базового класса. Как сделать так, чтобы присвоение полей исполнилось только в производном классе. Вариант с удалением присвоения в базовом классе не рассматривается. Но это работает.
Листинг программы
  1. class BaseClass
  2. {
  3. // Поля
  4. // Открытое поле.
  5. public string publicField = "BaseClass.publicField";
  6. // Закрытое поле.
  7. private string privateField = "BaseClass.privateField";
  8. // Защищенное поле.
  9. protected string protectedField = "BaseClass.protectedField";
  10. }
Листинг программы
  1. using System;
  2. // Наследование.
  3. namespace Inheritance
  4. {
  5. class BaseClass
  6. {
  7. // Поля
  8. // Открытое поле.
  9. public string publicField = "BaseClass.publicField";
  10. // Закрытое поле.
  11. private string privateField = "BaseClass.privateField";
  12. // Защищенное поле.
  13. protected string protectedField = "BaseClass.protectedField";
  14. }
  15. class DerivedClass : BaseClass
  16. {
  17. // Конструктор.
  18. public DerivedClass()
  19. {
  20. // Изменяем все доступные поля унаследованные от базового класса.
  21. publicField = "DerivedClass.publicField";
  22. protectedField = "DerivedClass.protectedField";
  23. }
  24. }
  25. class Program
  26. {
  27. static void Main()
  28. {
  29. DerivedClass instance = new DerivedClass();
  30. Console.WriteLine(instance.publicField);
  31. // Delay.
  32. Console.ReadKey();
  33. }
  34. }
  35. }

Решение задачи: «Наследование. Как сделать так, чтобы присвоение полей исполнилось только в производном классе?»

textual
Листинг программы
  1. public class A
  2.         {
  3.             public string Title;
  4.              public A():this("A")
  5.             {
  6.  
  7.             }
  8.             public A(string s)
  9.             {
  10.                 Title = s;
  11.             }
  12.         }
  13.         public class B : A
  14.         {
  15.             public B(string s):base(s)
  16.             {
  17.                 //тут что-то еще присваиваем
  18.             }
  19.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.091 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы