Абстракция в C#

НАВИГАЦИЯ ПО СТРАНИЦЕ

Абстрактные классы Интерфейсы

Абстракция в объектно-ориентированном программировании (ООП) означает выделение общих характеристик объекта и игнорирование конкретных деталей, которые не являются необходимыми для текущей задачи. Она позволяет сфокусироваться на важных аспектах объекта, игнорируя ненужные детали реализации.

Абстрактные классы:

Абстрактные классы представляют собой классы, которые не могут быть инстанциированы напрямую, а могут содержать абстрактные методы, не имеющие реализации. Они предоставляют основу для других классов, требуя от них реализации абстрактных методов.

Пример абстрактного класса с абстрактным методом:

public abstract class Shape
{
    public abstract void Draw();
}

public class Circle : Shape
{
    public override void Draw()
    {
        Console.WriteLine("Drawing a circle");
    }
}

public class Rectangle : Shape
{
    public override void Draw()
    {
        Console.WriteLine("Drawing a rectangle");
    }
}

Интерфейсы:

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

Пример интерфейса:

public interface IShape
{
    void Draw();
}

public class Circle : IShape
{
    public void Draw()
    {
        Console.WriteLine("Drawing a circle");
    }
}

public class Rectangle : IShape
{
    public void Draw()
    {
        Console.WriteLine("Drawing a rectangle");
    }
}

Абстракция позволяет скрыть детали реализации, фокусируясь на важных аспектах объектов. Это упрощает процесс проектирования программы, делает код более читаемым и обеспечивает гибкость при изменении и дополнении программы.