Junior
Aké aspekty objektovo orientovaného programovania sú prítomné v jazyku Dart?
sobes.tech AI
Odpoveď od AI
V Dartu existujú nasledujúce aspekty objektovo orientovaného programovania:
- Triedy a objekty: Možnosť definovať triedy s poľami a metódami, vytvárať inštancie tried (objekty).
- Zapuzdrovanie: Skrytie detailov implementácie pomocou modifikátorov prístupu (
_pre súkromné členy) a getter/setter metód. - Dedičstvo: Rozšírenie funkčnosti existujúcich tried pomocou kľúčového slova
extends. - Polymorfizmus: Možnosť spracovávať objekty rôznych tried jednotne cez spoločné rozhranie alebo základnú triedu.
- Abstrakcia: Vytváranie abstraktných tried a rozhraní na definovanie zmlúv.
Príklad triedy v Dart:
class Animal {
String _name; // Súkromné pole
Animal(this._name); // Konštruktor
String get name => _name; // Getter
void makeSound() {
print('Všeobecný zvuk zvieraťa'); // Metóda
}
}
Príklad dedičstva:
class Dog extends Animal {
Dog(String name) : super(name); // Volanie konštruktora základnej triedy
@override // Prepisovanie metódy základnej triedy
void makeSound() {
print('Haf!');
}
}
Príklad polymorfizmu:
void makeAnimalSound(Animal animal) {
animal.makeSound(); // Volanie metódy makeSound(), ktorá môže byť odlišná pre rôzne typy Animal
}
// Použitie:
// makeAnimalSound(Dog('Buddy')); // Vypíše "Haf!"
Dart tiež podporuje mixiny pomocou kľúčového slova with, čo umožňuje opakovane používať kód tried bez priameho dedičstva.