Junior
Milyen objektumorientált programozási aspektusok vannak jelen a Dart nyelvben?
sobes.tech MI
Válasz az MI-től
A Dartben a következő OOP szempontok vannak:
- Osztályok és objektumok: Lehetőség osztályok definiálására mezőkkel és metódusokkal, osztálypéldányok (objektumok) létrehozására.
- Encapsuláció: A részletek elrejtése hozzáférés módosítók (
_a privát tagokhoz) és getter/setter metódusok segítségével. - Öröklődés: A meglévő osztályok funkcionalitásának bővítése a
extendskulcsszóval. - Polimorfizmus: Képesség különböző osztályok objektumait egységesen kezelni egy közös interfész vagy ősosztály segítségével.
- Absztrakció: Absztrakt osztályok és interfészek létrehozása szerződések meghatározására.
Példa egy Dart osztályra:
class Animal {
String _name; // Privát mező
Animal(this._name); // Konstruktor
String get name => _name; // Getter
void makeSound() {
print('Általános állati hang'); // Metódus
}
}
Öröklődés példája:
class Dog extends Animal {
Dog(String name) : super(name); // A szülő osztály konstruktorának hívása
@override // A szülő osztály metódusának felülírása
void makeSound() {
print('Vau!');
}
}
Polimorfizmus példája:
void makeAnimalSound(Animal animal) {
animal.makeSound(); // A makeSound() metódus hívása, ami különböző Animal típusokra más lehet
}
// Használat:
// makeAnimalSound(Dog('Buddy')); // Kiírja: "Vau!"
A Dart támogatja a mixineket a with kulcsszóval, ami lehetővé teszi osztályok kódjának újrahasznosítását közvetlen öröklés nélkül.