Sobes.tech
Junior — Middle

Ar galite paaiškinti, ką reiškia abstraktaus klases sąvoka objektinio programavimo srityje?

sobes.tech AI

Atsakymas iš AI

Objektų orientuoto programavimo abstraktusis klasė yra klasė, kuri nėra skirta tiesioginiam egzempliorių kūrimui. Ji tarnauja kaip šablonas kitoms klasėms ir gali turėti tiek įgyvendintus metodus, tiek abstrakčius (be įgyvendinimo) metodus, kurie turi būti įgyvendinti pogrupiuose.

Pavyzdžiui, Dart (Flutter kalba) abstrakti klasė deklaruojama naudojant raktinį žodį abstract:

abstract class Animal {
  void makeSound(); // abstraktus metodas

  void breathe() {
    print('Kvėpuoja'); // įgyvendintas metodas
  }
}

class Dog extends Animal {
  @override
  void makeSound() {
    print('Au');
  }
}

void main() {
  // Animal animal = Animal(); // Klaida: negalima sukurti abstraktaus klasės egzemplioriaus
  Dog dog = Dog();
  dog.makeSound(); // Au
  dog.breathe();   // Kvėpuoja
}

Taip, abstrakti klasė apibrėžia bendrą sąsają ir bazinę funkcionalumą, o konkretūs klasės įgyvendina detales.