Sobes.tech
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ă.