ダック・タイピング(
)とは、
Smalltalk、
Python、
Rubyなどのいくつかの
動的型付けオブジェクト指向プログラミング言語に特徴的な
型付けの作法のことである。それらの言語では
オブジェクト(変数の
値)に何ができるかはオブジェクトそのものが決定する。つまり、オブジェクトがある
インタフェースのすべてのメソッドを持っているならば、たとえそのクラスがそのインタフェースを宣言的に実装していなくとも、オブジェクトはそのインタフェースを実行時に実装しているとみなせる、ということである。それはまた、同じインタフェースを実装するオブジェクト同士が、それぞれがどのような
継承階層を持っているのかということと無関係に、相互に交換可能であるという意味でもある。