Sobes.tech
Junior — Middle

Care sunt funcțiile principale și aplicațiile claselor abstracte în programarea orientată pe obiecte?

sobes.tech AI

Răspuns de la AI

Clasele abstracte în programarea orientată pe obiecte sunt clase care nu sunt destinate creării de instanțe direct, ci servesc ca modele de bază pentru alte clase.

Funcțiile principale ale claselor abstracte:

  • Definirea unei interfețe comune și a comportamentului de bază pentru un grup de clase conexe.
  • Posibilitatea de a declara metode abstracte (fără implementare), care trebuie implementate de subclase.
  • Permite implementarea parțială a funcționalității moștenite de clasele derivate.

Aplicabilitate:

  • Când este necesar să se stabilească un contract comun pentru diferite implementări.
  • Când o parte a logicii este comună, iar alta trebuie implementată în moștenitori.

Exemplu în Java:

abstract class Animal {
    abstract void makeSound(); // metodă abstractă
    void breathe() {
        System.out.println("Respiră");
    }
}

class Dog extends Animal {
    void makeSound() {
        System.out.println("Ham-ham");
    }
}

Aici, Animal nu poate fi creat direct, dar se poate crea un Dog, care implementează metoda makeSound.