Sobes.tech
Junior

Šta je apstraktna klasa?

sobes.tech АИ

Одговор од АИ

Apstraktna klasa je klasa koja se ne može direktno kreirati pomoću operatora new. Ona služi kao osnova za druge klase i može sadržavati apstraktne metode (bez implementacije) i obične metode (sa implementacijom). Apstraktne klase se definišu ključnom reči abstract.

Glavne osobine:

  • Ne može se instancirati: Nije moguće kreirati objekat same apstraktne klase.
  • Može sadržavati apstraktne metode: Metode bez tela, koje moraju biti prepisane u izvedenim klasama.
  • Može sadržavati obične metode: Metode sa implementacijom, koje mogu biti nasledjene ili prepisane.
  • Nasleđivanje: Izvedene klase nasleđuju apstraktnu klasu i moraju implementirati sve njene apstraktne metode.

Primer:

abstract class Shape {
  // Apstraktna metoda bez implementacije
  double getArea();

  // Obična metoda sa implementacijom
  void describe() {
    print('Ovo je figura.');
  }
}

class Circle extends Shape {
  double radius;

  Circle(this.radius);

  // Implementacija apstraktne metode
  @override
  double getArea() {
    return 3.14 * radius * radius;
  }
}

class Square extends Shape {
  double side;

  Square(this.side);

  // Implementacija apstraktne metode
  @override
  double getArea() {
    return side * side;
  }
}