У меня есть абстрактный класс и класс ребенкаПодкласса абстрактного класса, всегда называют абстрактный конструктор
abstract class abstractClass
{
public int x;
protected abstractClass(int x)
{
this.x = x;
}
}
class childClass : abstractClass
{
childClass(int x)
: base(x)
{
}
}
У меня есть много дочерних классов, как эта, где все эти классы всегда просто называют общий конструктор abstractClass1(int x)
путем вызова base(x)
в своих конструкторах.
Когда я хочу добавить новое свойство в конструктор, например, еще один int y
, я должен отредактировать все эти классы и добавить y
в качестве параметра в конструкторе каждого потомка, а также конструктор абстрактного класса.
Есть ли другой способ сделать это, учитывая, что я заранее знаю, что каждый дочерний класс будет использовать абстрактный конструктор классов и не будет добавлять ничего другого?
Зависит от того, что такое 'y'. Должны ли дочерние классы предоставлять значение для 'y'? Будет ли конструктор, который принимает только 'x', по-прежнему действителен? –
@BJMyers ya, конечно, 'y' получит свое значение, установленное из конструктора, иначе я просто добавлю' y' в абстрактный класс a, который бы это был – dimitris93
Вы могли бы добавить еще один конструктор с дополнительным параметром или установить параметр в значение по умолчанию в сигнатуре метода. –