Sobes.tech
Junior
128
questionbank

Что такое интерфейс в C#?

Answer from AI

sobes.tech AI

Интерфейс в C# — это контракт, который определяет набор членов (методов, свойств, событий, индексаторов), но не содержит их реализацию. Классы и структуры могут реализовывать один или несколько интерфейсов, обязуясь предоставить реализацию для всех членов интерфейса.

Ключевые особенности:

  • Позволяет достичь полиморфизма.
  • Определяет поведение, а не состояние.
  • Может содержать только объявления членов без модификаторов доступа (неявно public).
  • Не может быть создан напрямую (инстанцирован).
  • Поддерживает множественное наследование (один класс может реализовать несколько интерфейсов).
  • Введены интерфейсы по умолчанию с .NET Core 3.0+, позволяющие предоставлять реализацию miembros.

Пример:

// Определение интерфейса
public interface ICustomer
{
    string GetFullName(); // Объявление метода
    int CustomerId { get; } // Объявление свойства
}

// Класс, реализующий интерфейс
public class CompanyCustomer : ICustomer
{
    public int CustomerId { get; set; }
    public string CompanyName { get; set; }
    public string ContactPerson { get; set; }

    public string GetFullName()
    {
        return $"{CompanyName} ({ContactPerson})";
    }
}