Sobes.tech
Junior

Kas yra abstrakcija programavime?

sobes.tech AI

Atsakymas iš AI

Abstrakcija yra mechanizmas, leidžiantis paslėpti įgyvendinimo detales ir pateikti bendrą sistemos arba jos komponentų vaizdą. Ji sutelkia dėmesį į "ką" objektas daro, o ne į "kaip".

C# kalboje abstrakcija įgyvendinama šiais būdais:

  • Abstract classes: Gali turėti abstrakčius metodus (be įgyvendinimo) ir įprastus narius. Negalima sukurti abstrakčios klasės pavyzdžio.
    // Abstrakti klasė su abstraktu metodu
    public abstract class Shape
    {
        public abstract double GetArea(); // Abstraktus metodas
        public string Name { get; set; }
    
        public void DisplayInfo() // Įprastas metodas
        {
            Console.WriteLine($"Forma: {Name}");
        }
    }
    
  • Interfaces: Apibrėžia sutartį, kurią turi įgyvendinti klasė. Turi tik metodų, savybių, įvykių ir indeksatorių deklaracijas (iki C# 8), arba gali turėti numatytąją įgyvendinimą (nuo C# 8).
    // Interfeisas
    public interface IDrawable
    {
        void Draw(); // Be įgyvendinimo metodas
    }
    

Abstrakcijos principai:

  • Kapsuliacija: Duomenų ir su jais dirbančių metodų sujungimas į vieną bloką. Skatina paslėpti vidinę struktūrą.
  • Paveldėjimas: Leidžia kurti naujas klases remiantis esamomis, paveldint jų savybes ir metodus, ir pridedant arba perrašant funkcionalumą.

Abstrakcijos taikymas:

  • Sudėtingų sistemų supaprastinimas.
  • Kodo lankstumo didinimas.
  • Palaikymo gerinimas.
  • Kartotinai naudojamų komponentų kūrimas.