Sobes.tech
Junior

Τι είναι μια αφηρημένη κλάση;

sobes.tech AI

Απάντηση από AI

Μια αφηρημένη κλάση είναι μια κλάση που δεν μπορεί να δημιουργηθεί άμεσα με τη χρήση του τελεστή new. Χρησιμεύει ως βάση για άλλες κλάσεις και μπορεί να περιέχει αφηρημένες μεθόδους (χωρίς υλοποίηση) και κανονικές μεθόδους (με υλοποίηση). Οι αφηρημένες κλάσεις ορίζονται με τη λέξη-κλειδί abstract.

Βασικά χαρακτηριστικά:

  • Δεν μπορεί να δημιουργηθεί αντικείμενο: Δεν είναι δυνατή η δημιουργία αντικειμένου της ίδιας της αφηρημένης κλάσης.
  • Μπορεί να περιέχει αφηρημένες μεθόδους: Μέθοδοι χωρίς σώμα, που πρέπει να υλοποιηθούν στις υποκλάσεις.
  • Μπορεί να περιέχει κανονικές μεθόδους: Μέθοδοι με υλοποίηση, που μπορούν να κληρονομηθούν ή να υπερισχύσουν.
  • Κληρονομικότητα: Οι υποκλάσεις κληρονομούν από την αφηρημένη κλάση και πρέπει να υλοποιήσουν όλες τις αφηρημένες μεθόδους της.

Παράδειγμα:

abstract class Shape {
  // Αφηρημένη μέθοδος χωρίς υλοποίηση
  double getArea();

  // Κανονική μέθοδος με υλοποίηση
  void describe() {
    print('Αυτή είναι μια μορφή.');
  }
}

class Circle extends Shape {
  double radius;

  Circle(this.radius);

  // Υλοποίηση της αφηρημένης μεθόδου
  @override
  double getArea() {
    return 3.14 * radius * radius;
  }
}

class Square extends Shape {
  double side;

  Square(this.side);

  // Υλοποίηση της αφηρημένης μεθόδου
  @override
  double getArea() {
    return side * side;
  }
}