ダック・タイピング
静的型付け言語では型検査をコンパイル時に実施する一方、動的型付け言語では型検査を実行時に実施する。つまり、動的型付けでは、オブジェクト(変数の値)に何ができるか(どのようなインタフェースを持っているか)は、実行時のオブジェクトそのものが決定する。
ダック・タイピングについて、継承機能によるサブタイプ(部分型)多相 (subtype polymorphism) を主に用いる静的型付けのオブジェクト指向言語であるJavaやC#の概念で例えると、オブジェクトがあるインタフェースのすべてのメソッドを持っているならば、たとえそのクラスがそのインタフェースを宣言的に実装していなくとも、オブジェクトはそのインタフェースを実行時に実装しているとみなせる、ということである。それはまた、同じインタフェースを実装するオブジェクト同士が、それぞれがどのような継承階層を持っているのかということと無関係に、相互に交換可能であるという意味でもある。ダック・タイピングは構造的型付け (structural typing) に類似しており、構造的型付けの多態性(多相性)はロー多相(英語版) (row polymorphism) に分類されることがある(日本語では行多相あるいは列多相とも)。