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.