Наследование в c# без ссылок на поля
Есть класс от которого наследуются несколько других. Он содержит: динамическое поле, статическое поле, конструктор, динамический метод.
class Parent
{
public int num;
public static string text;
public Parent(int num)
{
this.num = num;
}
public void Method() { #dosomething }
}
class Child1 : Parent
{
public Child1(int num) : base(num) { }
}
class Child2 : Parent
{
public Child2(int num) : base(num) { }
}
Если я попробую изменить поле text в одном из детей, то изменится поле у родителя. Как мне сделать чтобы они не ссылались на Родителя а имели каждый собственное поле?
Child1.text = "qwe";
Child2.text = "123";
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Просто перекройте в классах-наследниках родительское поле text:
class Child1 : Parent
{
public static new string text;
public Child1(int num) : base(num) { }
}
class Child2 : Parent
{
public static new string text;
public Child2(int num) : base(num) { }
}
Только нужно добавить ключевое слово new, иначе компилятор сомневается - намеренно ли было сделано перекрытие или случайно.