Наследование. Как сделать так, чтобы присвоение полей исполнилось только в производном классе? - C#
Формулировка задачи:
Здравствуйте.
При создании экземпляра
С начало выполняется присвоение полям значений в базовом классе, затем в производном.
Походу, конструктор производного класса неявно вызывает конструктор по умолчанию базового класса.
Как сделать так, чтобы присвоение полей исполнилось только в производном классе.
Вариант с удалением присвоения в базовом классе не рассматривается. Но это работает.
Листинг программы
- DerivedClass instance = new DerivedClass();
Листинг программы
- class BaseClass
- {
- // Поля
- // Открытое поле.
- public string publicField = "BaseClass.publicField";
- // Закрытое поле.
- private string privateField = "BaseClass.privateField";
- // Защищенное поле.
- protected string protectedField = "BaseClass.protectedField";
- }
Листинг программы
- using System;
- // Наследование.
- namespace Inheritance
- {
- class BaseClass
- {
- // Поля
- // Открытое поле.
- public string publicField = "BaseClass.publicField";
- // Закрытое поле.
- private string privateField = "BaseClass.privateField";
- // Защищенное поле.
- protected string protectedField = "BaseClass.protectedField";
- }
- class DerivedClass : BaseClass
- {
- // Конструктор.
- public DerivedClass()
- {
- // Изменяем все доступные поля унаследованные от базового класса.
- publicField = "DerivedClass.publicField";
- protectedField = "DerivedClass.protectedField";
- }
- }
- class Program
- {
- static void Main()
- {
- DerivedClass instance = new DerivedClass();
- Console.WriteLine(instance.publicField);
- // Delay.
- Console.ReadKey();
- }
- }
- }
Решение задачи: «Наследование. Как сделать так, чтобы присвоение полей исполнилось только в производном классе?»
textual
Листинг программы
- public class A
- {
- public string Title;
- public A():this("A")
- {
- }
- public A(string s)
- {
- Title = s;
- }
- }
- public class B : A
- {
- public B(string s):base(s)
- {
- //тут что-то еще присваиваем
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д