存在しないメソッド呼び出しを弾きたいだけだったら構造的部分型が一番柔軟なんじゃないかね
これを本格的に採用する言語はオーバーロードを捨てる事になるだろうが