Junior
Ποια στοιχεία αντικειμενοστραφούς προγραμματισμού υπάρχουν στη γλώσσα Dart;
sobes.tech AI
Απάντηση από AI
Στο Dart, υπάρχουν τα ακόλουθα στοιχεία αντικειμενοστραφούς προγραμματισμού:
- Κλάσεις και αντικείμενα: Η δυνατότητα ορισμού κλάσεων με πεδία και μεθόδους, δημιουργία στιγμιότυπων κλάσεων (αντικειμένων).
- Εγκλεισμός: Απόκρυψη λεπτομερειών υλοποίησης μέσω τροποποιητών πρόσβασης (
_για ιδιωτικά μέλη) και μεθόδων getter/setter. - Κληρονομικότητα: Επέκταση της λειτουργικότητας υφιστάμενων κλάσεων με τη λέξη-κλειδί
extends. - Πολυμορφισμός: Η δυνατότητα επεξεργασίας αντικειμένων διαφορετικών κλάσεων με ομοιόμορφο τρόπο μέσω κοινής διεπαφής ή βασικής κλάσης.
- Αφηρημένη: Δημιουργία αφηρημένων κλάσεων και διεπαφών για τον ορισμό συμβάσεων.
Παράδειγμα κλάσης σε Dart:
class Animal {
String _name; // Ιδιωτικό πεδίο
Animal(this._name); // Κατασκευαστής
String get name => _name; // Getter
void makeSound() {
print('Κάποιος γενικός ήχος ζώου'); // Μέθοδος
}
}
Παράδειγμα κληρονομικότητας:
class Dog extends Animal {
Dog(String name) : super(name); // Κλήση κατασκευαστή της βασικής κλάσης
@override // Υπερκαλύπτει τη μέθοδο της βασικής κλάσης
void makeSound() {
print('Γουφ!');
}
}
Παράδειγμα πολυμορφισμού:
void makeAnimalSound(Animal animal) {
animal.makeSound(); // Κλήση της μεθόδου makeSound(), η οποία μπορεί να διαφέρει για διαφορετικούς τύπους Animal
}
// Χρήση:
// makeAnimalSound(Dog('Buddy')); // Θα εμφανίσει "Γουφ!"
Το Dart υποστηρίζει επίσης mixins με τη χρήση της λέξης-κλειδιού with, που επιτρέπει την επανάχρηση κώδικα κλάσεων χωρίς άμεση κληρονομικότητα.