Sobes.tech
Junior

Ce este o clasă abstractă?

sobes.tech AI

Răspuns de la AI

O clasă abstractă este o clasă care nu poate fi creată direct folosind operatorul new. Servește ca bază pentru alte clase și poate conține metode abstracte (fără implementare) și metode obișnuite (cu implementare). Clasele abstracte sunt definite cu cuvântul cheie abstract.

Caracteristici principale:

  • Nu poate fi instanțiată: Nu este posibil să creezi un obiect al clasei abstracte în sine.
  • Poate conține metode abstracte: Metode fără corp, care trebuie să fie suprascrise în clasele derivate.
  • Poate conține metode obișnuite: Metode cu implementare, care pot fi moștenite sau suprascrise.
  • Moștenire: Clasele derivate moștenesc de la clasa abstractă și trebuie să implementeze toate metodele sale abstracte.

Exemplu:

abstract class Shape {
  // Metodă abstractă fără implementare
  double getArea();

  // Metodă obișnuită cu implementare
  void describe() {
    print('Aceasta este o figură.');
  }
}

class Circle extends Shape {
  double radius;

  Circle(this.radius);

  // Implementarea metodei abstracte
  @override
  double getArea() {
    return 3.14 * radius * radius;
  }
}

class Square extends Shape {
  double side;

  Square(this.side);

  // Implementarea metodei abstracte
  @override
  double getArea() {
    return side * side;
  }
}