Конструктор абстрактного класса [дубликат]

11
задан Community 23 May 2017 в 10:32
поделиться

3 ответа

Нет. C# не поддерживает это ни в одной версии. Обратите внимание, что конструкторы не наследуются в производных классах, хотя они могут быть "соединены в цепочку". Вероятно, это то, что вы хотите сделать.

Если вы хотите указать, что производный класс должен выполнять какую-то инициализацию, вы можете создать абстрактный метод Initialise или такой, который конструктор базового класса (и косвенно подкласса) вызывает при создании.

В качестве побочного вопроса, я не уверен, поддерживает ли CLR (или связанный с ним язык CIL) это на самом деле - я подозреваю, что может, хотя это мало применимо в C# по только что упомянутой причине.

18
ответ дан 3 December 2019 в 01:38
поделиться

В основном нет.

Если это абстрактный, вы должны переопределить его в конкретном дочернем классе, и вы не можете переопределить конструктор, а только перегрузите его.

2
ответ дан 3 December 2019 в 01:38
поделиться

Нет, конструктор нельзя пометить как абстрактный. В абстрактных классах конструкторы обычно помечаются как protected , хотя, по крайней мере, я бы рекомендовал вам это сделать.

18
ответ дан 3 December 2019 в 01:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: