Задать вопрос
@CityzenUNDEAD

Зачем абстрактным классам нужны конструкторы?

Всем здаров!
Вот наткнулся на такой код
abstract class AbstractClass 
    { 
        public AbstractClass() 
        {
            ...
        }

    }

Код конечно условный. Главный вопрос, а нафига абстрактному классу конструктор? Я c# пока плохо знаю, но вроде их таких классов нельзя создавать экземпляры. Может это бред, кто написал так?
  • Вопрос задан
  • 2595 просмотров
Подписаться 2 Простой 1 комментарий
Решения вопроса 4
freeExec
@freeExec
Участник OpenStreetMap
Чтобы в каждом конструкторе наследника не писать одно и то же.
Ответ написан
@d-sem
Абстрактный клас может расширяться неабстрактным классом, который унаследует его методы и свойства. И вот тогда пригодится конструктор.
Ответ написан
Комментировать
bingo347
@bingo347
Crazy on performance...
Он может быть вызван например вот так:
class SomeClass : AbstractClass
{
  public SomeClass() : base()
  {
    // ...
  }
}

Нужно затем же, зачем и любой другой конструктор - чтоб выполнить логику только на инициализации инстанса
Ответ написан
Комментировать
@yuopi
C# developer
В абстрактном классе могут быть неабстрактные свойства, поля и методы. Их (свойства и поля) то и нужно в этом конструкторе инициализировать.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@CityzenUNDEAD Автор вопроса
Если от абстрактного класса наследуется какой-то другой класс, то почему бы поля и методы абстрактного класса не указать без использования конструктора?
Вот так
abstract class AbstractClass 
    {
     public int field = 1;
     public void Method();
    }

    class ConcreteClass : AbstractClass 
    {
        public ConcreteClass() 
        {
               public override void Method()
        {
            Console.WriteLine("Реализация");
        }
        }
    }
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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