Duck typing to zasada, w której o przydatności obiektu decyduje to, na jakie metody reaguje, a nie jego klasa czy typ — "jeśli chodzi jak kaczka i kwacze jak kaczka, to jest kaczką". W Ruby ważne jest to, że obiekt potrafi coś zrobić (ma daną metodę), a nie jakiego jest typu. Umożliwia to elastyczny, polimorficzny kod bez dziedziczenia ani interfejsów.
Zasada: zachowanie ważniejsze niż typ
()
duck.quack
=
=
make_it_quack(.new)
make_it_quack(.new)
