Sobes.tech
Junior
121
questionbank

Что такое абстракция?

Ответ от нейросети

sobes.tech AI

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

В C# абстракция реализуется с помощью:

  • Абстрактных классов: Могут содержать абстрактные методы (без реализации) и обычные методы. Нельзя создать экземпляр абстрактного класса напрямую.
    public abstract class Shape // Абстрактный класс
    {
        public abstract double Area(); // Абстрактный метод
        public void DisplayInfo() // Обычный метод
        {
            Console.WriteLine("Это фигура.");
        }
    }
    
  • Интерфейсов: Определяют контракт - набор методов и свойств, которыми должен обладать класс, реализующий интерфейс. Не содержат полей (до C# 8, где появились default interface methods) и могут содержать только сигнатуры методов.
    public interface IDrawable // Интерфейс
    {
        void Draw(); // Метод без реализации
    }
    

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