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.