Sobes.tech
Junior — Middle

Qual è la differenza tra l'uso dell'ereditarietà delle classi e l'implementazione delle interfacce nella programmazione orientata agli oggetti?

sobes.tech AI

Risposta dell'AI

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

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

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

Пример:

interface IFlyable {
    void Fly();
}

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

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