Junior — Middle
91
Чем отличается объявление интерфейса от определения класса в C#?
Answer from AI
sobes.tech AI
В C# интерфейс и класс отличаются по нескольким ключевым аспектам:
-
Определение:
- Интерфейс — это контракт, который определяет набор методов, свойств, событий и индексаторов без реализации.
- Класс — это тип, который может содержать реализацию методов, полей, свойств и т.д.
-
Реализация:
- Интерфейс не содержит реализации (до C# 8.0), только объявления.
- Класс содержит реализацию всех своих членов.
-
Наследование:
- Класс может наследовать только один базовый класс, но реализовывать множество интерфейсов.
- Интерфейс может наследовать несколько других интерфейсов.
-
Модификаторы доступа:
- Члены интерфейса по умолчанию публичные и не могут иметь модификаторы доступа.
- В классе можно использовать разные уровни доступа (public, private, protected и др.).
Пример интерфейса и класса:
public interface ILogger
{
void Log(string message);
}
public class ConsoleLogger : ILogger
{
public void Log(string message)
{
Console.WriteLine(message);
}
}
Таким образом, интерфейс задаёт, что должно быть реализовано, а класс — как именно.