Junior — Middle
Môžete vysvetliť princíp jednotnej (kačice) typizácie a ako sa uplatňuje v programovaní?
sobes.tech AI
Odpoveď od AI
Typ kačice (duck typing) je koncept v programovaní, kde typ objektu nie je určen jeho triedou alebo dedičstvom, ale prítomnosťou určitých metód a vlastností.
Veta "Ak niečo vyzerá ako kačica, pláva ako kačica a kváka ako kačica, potom je to kačica" odráža podstatu: dôležité nie je typ objektu, ale jeho správanie.
V C# to nie je zabudovaný mechanizmus ako v dynamických jazykoch, ale dá sa to napodobniť pomocou rozhraní alebo dynamického typu (dynamic). Napríklad, ak objekt implementuje potrebné metódy, môže byť použitý bez prísnej kontroly typu.
Príklad s dynamic:
void MakeItQuack(dynamic duck) {
duck.Quack();
}
class Duck {
public void Quack() {
Console.WriteLine("Kvak!");
}
}
MakeItQuack(new Duck());
Tu je dôležité, aby objekt, ktorý sa odovzdáva, mal metódu Quack, inak dôjde k chybe počas behu.