Sobes.tech
Junior

Kokie objektinio programavimo aspektai yra Dart kalboje?

sobes.tech AI

Atsakymas iš AI

Dart kalboje yra šie objektinio programavimo aspektai:

  • Klasės ir objektai: Galimybė apibrėžti klases su laukais ir metodais, kurti klasių pavyzdžius (objektus).
  • Uždarymas: Detalių slėpimas naudojant prieigos modifikatorius (_ privačioms narėms) ir getter/setter metodus.
  • Paveldėjimas: Funkcionalumo plėtimas esamose klasėse naudojant raktinį žodį extends.
  • Polimorfizmas: Galimybė apdoroti skirtingų klasių objektus vienodai per bendrą sąsają arba bazinę klasę.
  • Abstrakcija: Sukurti abstrakčias klases ir sąsajas, kad būtų galima apibrėžti sutartis.

Dart pavyzdys:

class Animal {
  String _name; // Privatus laukas

  Animal(this._name); // Konstruktorius

  String get name => _name; // Getter

  void makeSound() {
    print('Bendra gyvūno garsas'); // Metodas
  }
}

Paveldėjimo pavyzdys:

class Dog extends Animal {
  Dog(String name) : super(name); // Kviečia bazinės klasės konstruktorių

  @override // Perrašyti bazinės klasės metodą
  void makeSound() {
    print('Au!');
  }
}

Polimorfizmo pavyzdys:

void makeAnimalSound(Animal animal) {
  animal.makeSound(); // Kviečia makeSound() metodą, kuris gali būti skirtingas skirtingų tipų Animal
}

// Naudojimas:
// makeAnimalSound(Dog('Buddy')); // Išves "Au!"

Dart taip pat palaiko mixins naudojant raktinį žodį with, kas leidžia pakartotinai naudoti klasių kodą be tiesioginio paveldėjimo.