Sobes.tech
Junior

Mis on abstraktne klass?

sobes.tech AI

Vastus AI-lt

Hulknurk on klass, mida ei saa otse new operaatori abil luua. See toimib teiste klasside alusena ning võib sisaldada abstraktseid (ilma rakenduseta) ja tavalisi (rakendusega) meetodeid. Abstraktseid klasse määratletakse võtmesõnaga abstract.

Peamised omadused:

  • Ei saa luua instantsi: Ei ole võimalik luua objekti abstraktsest klassist.
  • Võib sisaldada abstraktseid meetodeid: Meetodid ilma kehasid, mida tuleb alamsklassides üle kirjutada.
  • Võib sisaldada tavalisi meetodeid: Meetodid koos rakendusega, mida saab pärida või üle kirjutada.
  • Pärimine: Alamsed klassid pärivad abstraktsest klassist ning peavad rakendama kõik selle abstraktsed meetodid.

Näide:

abstract class Shape {
  // Abstraktne meetod ilma rakenduseta
  double getArea();

  // Tavaline meetod rakendusega
  void describe() {
    print('See on kuju.');
  }
}

class Circle extends Shape {
  double radius;

  Circle(this.radius);

  // Abstraktse meetodi rakendamine
  @override
  double getArea() {
    return 3.14 * radius * radius;
  }
}

class Square extends Shape {
  double side;

  Square(this.side);

  // Abstraktse meetodi rakendamine
  @override
  double getArea() {
    return side * side;
  }
}