Sobes.tech
Junior — Middle

Μπορείτε να υπερισχύσετε μεθόδους ή ιδιότητες στη γλώσσα Dart;

sobes.tech AI

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

Ναι, στη γλώσσα Dart είναι δυνατή η επαναπροσδιορισμός μεθόδων και ιδιοτήτων σε κλάσεις που κληρονομούν.

Για αυτό, στην υποκλάση πρέπει να δηλωθεί μια μέθοδος ή ένας getter/setter με το ίδιο όνομα με αυτό στην βασική κλάση. Συνιστάται η χρήση της ετικέτας @override για να δηλωθεί ρητά η επαναπροσδιορισμός.

Παράδειγμα:

class Animal {
  void speak() {
    print('Ήχος ζώου');
  }

  String get name => 'Ζώο';
}

class Dog extends Animal {
  @override
  void speak() {
    print('Γαύγισμα');
  }

  @override
  String get name => 'Σκύλος';
}

void main() {
  var dog = Dog();
  dog.speak(); // Εκτύπωση: Γαύγισμα
  print(dog.name); // Εκτύπωση: Σκύλος
}

Έτσι, η Dart υποστηρίζει την επαναπροσδιορισμό μεθόδων και ιδιοτήτων για την υλοποίηση πολυμορφισμού.