Наследование. Как сделать так, чтобы присвоение полей исполнилось только в производном классе? - 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) 
            {
                //тут что-то еще присваиваем
            }
        }

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


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

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

11   голосов , оценка 4.091 из 5
Похожие ответы