Junior
Kādi objektorientētas programmēšanas aspekti ir Dart valodā?
sobes.tech AI
Atbilde no AI
Dartā ir šādi OOP aspekti:
- Klases un objekti: Iespēja definēt klases ar laukiem un metodēm, izveidot klases instances (objektus).
- Iekapsulēšana: Detalju slēpšana, izmantojot piekļuves modifikatorus (
_privātiem locekļiem) un getter/setter metodes. - Mantošana: Funkcionalitātes paplašināšana esošajās klasēs, izmantojot atslēgvārdu
extends. - Polimorfisms: Spēja apstrādāt dažādu klases objektus vienādi, izmantojot kopēju saskarni vai bāzes klasi.
- Abstrakcija: Izveidot abstraktas klases un saskarnes, lai definētu līgumus.
Dart piemērs:
class Animal {
String _name; // Privāts lauks
Animal(this._name); // Konstruktors
String get name => _name; // Getter
void makeSound() {
print('Vispārīgs dzīvnieka skaņa'); // Metode
}
}
Mantošanas piemērs:
class Dog extends Animal {
Dog(String name) : super(name); // Izsauc bāzes klases konstruktoru
@override // Pārraksta bāzes klases metodi
void makeSound() {
print('Vau!');
}
}
Polimorfisma piemērs:
void makeAnimalSound(Animal animal) {
animal.makeSound(); // Izsauc makeSound() metodi, kas var būt atšķirīga dažādu Animal tipu gadījumā
}
// Lietošana:
// makeAnimalSound(Dog('Buddy')); // Izvadīs "Vau!"
Dart atbalsta arī mixins, izmantojot atslēgvārdu with, kas ļauj atkārtoti izmantot klases kodu bez tiešas mantošanas.