Sobes.tech
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 extends kulcsszó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.