Sobes.tech
Junior

Czym jest abstrakcja w programowaniu?

sobes.tech AI

Odpowiedź od AI

Abstrakcja to mechanizm umożliwiający ukrycie szczegółów implementacji i dostarczenie ogólnego przedstawienia systemu lub jego komponentów. Koncentruje się na "co" robi obiekt, a nie na "jak" to robi.

W C# abstrakcja realizowana jest przez:

  • Klasy abstrakcyjne: Mogą zawierać metody abstrakcyjne (bez implementacji) i zwykłe człony. Nie można tworzyć instancji klasy abstrakcyjnej.
    // Klasa abstrakcyjna z metodą abstrakcyjną
    public abstract class Shape
    {
        public abstract double GetArea(); // Metoda abstrakcyjna
        public string Name { get; set; }
    
        public void DisplayInfo() // Metoda zwykła
        {
            Console.WriteLine($"Kształt: {Name}");
        }
    }
    
  • Interfejsy: Definiują kontrakt, który musi spełniać klasa. Zawierają tylko deklaracje metod, właściwości, zdarzeń i indeksatorów (do C# 8), lub mogą zawierać domyślną implementację (od C# 8).
    // Interfejs
    public interface IDrawable
    {
        void Draw(); // Metoda bez implementacji
    }
    

Zasady abstrakcji:

  • Enkapsulacja: Grupowanie danych i metod operujących na tych danych w jeden blok. Sprzyja ukrywaniu wewnętrznej struktury.
  • Dziedziczenie: Pozwala tworzyć nowe klasy na podstawie istniejących, dziedzicząc ich właściwości i metody, a także dodając lub nadpisując funkcjonalności.

Zastosowanie abstrakcji:

  • Uproszczenie złożonych systemów.
  • Zwiększenie elastyczności kodu.
  • Ulepszenie utrzymania.
  • Tworzenie wielokrotnego użytku komponentów.