Sobes.tech
Junior

Čo je to abstrakcia v programovaní?

sobes.tech AI

Odpoveď od AI

Abstrakcia je mechanizmus, ktorý umožňuje skrývať detaily implementácie a poskytovať všeobecnú reprezentáciu systému alebo jeho komponentov. Zameriava sa na "čo" robí objekt, a nie na "ako" to robí.

V C# sa abstrakcia realizuje prostredníctvom:

  • Abstraktných tried: Môžu obsahovať abstraktné metódy (bez implementácie) a bežné členy. Nie je možné vytvoriť inštanciu abstraktnej triedy.
    // Abstraktná trieda s abstraktnou metódou
    public abstract class Shape
    {
        public abstract double GetArea(); // Abstraktná metóda
        public string Name { get; set; }
    
        public void DisplayInfo() // Bežná metóda
        {
            Console.WriteLine($"Tvar: {Name}");
        }
    }
    
  • Rozhrania: Definujú zmluvu, ktorú musí implementovať trieda. Obsahujú iba deklarácie metód, vlastností, udalostí a indexátorov (do C# 8), alebo môžu obsahovať predvolenú implementáciu (od C# 8).
    // Rozhranie
    public interface IDrawable
    {
        void Draw(); // Metóda bez implementácie
    }
    

Princípy abstrakcie:

  • Zapuzdrenie: Zoskupenie dát a metód, ktoré s týmito dátami pracujú, do jedného bloku. Podporuje skrytie vnútornej štruktúry.
  • Dedičstvo: Umožňuje vytvárať nové triedy na základe existujúcich, dedičia ich vlastnosti a metódy, a pridáva alebo prepíše funkcie.

Použitie abstrakcie:

  • Zjednodušenie zložitých systémov.
  • Zvýšenie flexibility kódu.
  • Zlepšenie údržby.
  • Vytváranie opakovane použiteľných komponentov.