Junior
Jaké aspekty objektově orientovaného programování jsou přítomny v jazyce Dart?
sobes.tech AI
Odpověď od AI
V Dartu jsou následující aspekty OOP:
- Třídy a objekty: Možnost definovat třídy s poli a metodami, vytvářet instance tříd (objekty).
- Zapouzdření: Skrýt detaily implementace pomocí modifikátorů přístupu (
_pro soukromé členy) a getter/setter metod. - Dědičnost: Rozšířit funkčnost stávajících tříd pomocí klíčového slova
extends. - Polymorfismus: Možnost zpracovávat objekty různých tříd jednotně přes společné rozhraní nebo základní třídu.
- Abstrakce: Vytváření abstraktních tříd a rozhraní pro definování kontraktů.
Příklad třídy v Dart:
class Animal {
String _name; // Privátní pole
Animal(this._name); // Konstruktor
String get name => _name; // Getter
void makeSound() {
print('Obecný zvuk zvířete'); // Metoda
}
}
Příklad dědičnosti:
class Dog extends Animal {
Dog(String name) : super(name); // Volání konstruktoru základní třídy
@override // Přepsání metody základní třídy
void makeSound() {
print('Haf!');
}
}
Příklad polymorfismu:
void makeAnimalSound(Animal animal) {
animal.makeSound(); // Volání metody makeSound(), která může být odlišná pro různé typy Animal
}
// Použití:
// makeAnimalSound(Dog('Buddy')); // Vytiskne "Haf!"
Dart také podporuje mixiny pomocí klíčového slova with, což umožňuje opakované použití kódu tříd bez přímé dědičnosti.