Sobes.tech
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.