Junior
Ce este abstractizarea în programare?
sobes.tech AI
Răspuns de la AI
Abstracția este un mecanism care permite ascunderea detaliilor de implementare și furnizarea unei reprezentări generale a sistemului sau componentelor sale. Se concentrează pe "ce" face un obiect, și nu pe "cum" o face.
În C#, abstracția se realizează prin:
- Clase abstracte: Pot conține metode abstracte (fără implementare) și membri obișnuiți. Nu se poate crea o instanță a unei clase abstracte.
// Clasă abstractă cu metodă abstractă public abstract class Shape { public abstract double GetArea(); // Metodă abstractă public string Name { get; set; } public void DisplayInfo() // Metodă obișnuită { Console.WriteLine($"Formă: {Name}"); } } - Interfețe: Definirea unui contract pe care trebuie să îl implementeze o clasă. Conțin doar declarații de metode, proprietăți, evenimente și indexatori (până la C# 8), sau pot conține o implementare implicită (din C# 8 încolo).
// Interfață public interface IDrawable { void Draw(); // Metodă fără implementare }
Principiile abstracției:
- Încapsulare: Combinarea datelor și a metodelor care operează asupra acestor date într-un singur bloc. Favorizează ascunderea structurii interne.
- Moștenire: Permite crearea de clase noi pe baza celor existente, moștenind proprietățile și metodele acestora, și adăugând sau redefinind funcționalitatea.
Aplicarea abstracției:
- Simplificarea sistemelor complexe.
- Creșterea flexibilității codului.
- Îmbunătățirea întreținerii.
- Crearea de componente reutilizabile.