Sobes.tech
Back to questions
Junior — Middle
59

Какие основные отличия между интерфейсом и классом в объектно-ориентированном программировании?

Answer from AI

sobes.tech AI

Интерфейс и класс в объектно-ориентированном программировании имеют следующие ключевые отличия:

  • Назначение:

    • Интерфейс определяет набор методов и свойств без реализации, служит для описания контракта, который должен реализовать класс.
    • Класс — это конкретная реализация, которая может содержать как данные (поля), так и методы с реализацией.
  • Реализация:

    • Интерфейс не содержит реализации методов (до C# 8.0, после появились default-реализации).
    • Класс содержит реализацию всех своих методов.
  • Наследование:

    • Класс может наследоваться только от одного базового класса, но может реализовывать несколько интерфейсов.
    • Интерфейс может наследовать несколько других интерфейсов.
  • Использование:

    • Интерфейсы используются для обеспечения полиморфизма и слабой связности.
    • Классы создают объекты и содержат логику.

Пример на C#:

interface ILogger
{
    void Log(string message);
}

class ConsoleLogger : ILogger
{
    public void Log(string message)
    {
        Console.WriteLine(message);
    }
}

Здесь ILogger — интерфейс, а ConsoleLogger — класс, реализующий этот интерфейс.