Sobes.tech
Back to questions
Junior — Middle
67

Чем отличается использование наследования классов от реализации интерфейсов в объектно-ориентированном программировании?

Companies where asked
Sector Tree

Answer from AI

sobes.tech AI

Наследование классов и реализация интерфейсов — два разных механизма в объектно-ориентированном программировании:

  • Наследование классов позволяет создать новый класс на основе существующего, унаследовав его поля и методы. Это обеспечивает повторное использование кода и иерархию типов. Однако в C# класс может наследоваться только от одного базового класса (одинарное наследование).

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

Пример:

interface IFlyable {
    void Fly();
}

class Bird : Animal, IFlyable {
    public void Fly() {
        Console.WriteLine("Птица летит");
    }
}

Здесь Bird наследует Animal и реализует интерфейс IFlyable.