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.