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;
}
}