Чем отличается использование наследования классов от реализации интерфейсов в объектно-ориентированном программировании?
Answer from AI
sobes.tech AI
Наследование классов и реализация интерфейсов — два разных механизма в объектно-ориентированном программировании:
-
Наследование классов позволяет создать новый класс на основе существующего, унаследовав его поля и методы. Это обеспечивает повторное использование кода и иерархию типов. Однако в C# класс может наследоваться только от одного базового класса (одинарное наследование).
-
Реализация интерфейсов — это способ гарантировать, что класс реализует определённый набор методов и свойств, описанных в интерфейсе. Интерфейсы не содержат реализации, только сигнатуры. Класс может реализовывать несколько интерфейсов, что обеспечивает гибкость и позволяет создавать более абстрактные контракты.
Пример:
interface IFlyable {
void Fly();
}
class Bird : Animal, IFlyable {
public void Fly() {
Console.WriteLine("Птица летит");
}
}
Здесь Bird наследует Animal и реализует интерфейс IFlyable.