TGViewer
Папочка Разработки Папочка Разработки @dotnetdad · 3.04K subscribers
Post #33 421
Сегодня начинаю свою серию постов о вопросах к собеседованию .NET разработчика. Что-то я насобирал сам, когда ходил по куче собеседований, что-то спрашиваю сам сейчас как интервьюер.

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

В этой серии будут собраны совершенно разные вопросы - некоторые из них вам покажутся слишком базовыми, некоторые - слишком сложными, но каждый их них мне задавали больше одного раза.

🤓 Все вопросы в серии постов будут идти по возрастанию сложности

1️⃣ В чем разница между абстрактным классом и интерфейсом?
Давайте для начала получим представление что это вообще такое:
абстрактный класс - класс, который не может быть реализован, он может иметь реализацию по умолчанию и статические методы. Как правило представляет собой какой-то базовый класс для наследования. У интерфейсов же немного другое предназначение - они описывают контракты по которым можно будет взаимодействовать с объектами в дальнейшем. Как правило они описывают поведение объекта.

Так же ключевые отличия:
1. Абстрактные классы могут содержать реализованные методы, а интерфейсы содержат только сигнатуры методов. С какого-то там си шарпа в интерфейсе можно определить реализацию, но считаю это не самой хорошей практикой. (Обычно так и отвечал и интервьюеры соглашались)
2. Классы могут реализовывать несколько интерфейсов, но наследовать только от одного абстрактного класса.
3. Абстрактные классы могут иметь конструкторы, а интерфейсы — нет.
4. Абстрактные классы могут иметь поля и свойства, а интерфейсы — только свойства.
5. Абстрактные классы обычно используются для создания базового класса для наследования других классов, а интерфейсы используются для определения контракта, который должны реализовать классы.

2️⃣ Что такое делегаты?
Это указатель на метод, делегат имеет определенную сигнатуру. В основном используется в связке с событиями. (Ну а что еще вы хотите услышать?)


#вопросы_к_собеседованию_csharp
  • 👍 6
  • ❤ 1
More from @dotnetdad
  1. Sep 15, 2026За что отвечает ключевое слово async? У каждого спрашивали на собеседовании про модификато…
  2. Sep 14, 2026Post #394
  3. Sep 4, 2026Специальность + популяризация + высокий доход = темка 🌟 Разработка из серьёзной специализ…
  4. Aug 24, 2026Старшая дочка очень любит смотреть мультики, но этот грёбаный пульт всегда её подставляет…
  5. Aug 20, 2026Post #391
  6. Aug 3, 2026Разработчик, который не перестроится под нейронки, никуда не денется. Он станет таксистом…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →