Junior
Ce aspecte ale programării orientate pe obiecte sunt prezente în limbajul Dart?
sobes.tech AI
Răspuns de la AI
În Dart, există următoarele aspecte ale OOP:
- Clase și obiecte: Posibilitatea de a defini clase cu câmpuri și metode, de a crea instanțe ale claselor (obiecte).
- Încapsulare: Ascunderea detaliilor de implementare prin intermediul modificatorilor de acces (
_pentru membrii privați) și metode getter/setter. - Moștenire: Extinderea funcționalității claselor existente folosind cuvântul cheie
extends. - Polimorfism: Capacitatea de a trata obiecte din clase diferite în mod uniform printr-o interfață comună sau o clasă de bază.
- Abstracție: Crearea de clase abstracte și interfețe pentru a defini contracte.
Exemplu de clasă în Dart:
class Animal {
String _name; // Câmp privat
Animal(this._name); // Constructor
String get name => _name; // Getter
void makeSound() {
print('Sunet generic de animal'); // Metodă
}
}
Exemplu de moștenire:
class Dog extends Animal {
Dog(String name) : super(name); // Apelarea constructorului clasei de bază
@override // Suprascrierea metodei clasei de bază
void makeSound() {
print('Ham!');
}
}
Exemplu de polimorfism:
void makeAnimalSound(Animal animal) {
animal.makeSound(); // Apelarea metodei makeSound(), care poate fi diferită pentru diferite tipuri de Animal
}
// Utilizare:
// makeAnimalSound(Dog('Buddy')); // Va afișa "Ham!"
Dart suportă, de asemenea, mixins folosind cuvântul cheie with, ceea ce permite reutilizarea codului claselor fără moștenire directă.