>ダチョウ、ペンギンを例外にするのは良くないので、
>上記の実装なら同一扱いできるので良いと思います。
そこまでは限りなく同意なのですが
>もしくは、間違ってfly()させちゃいけないのなら
>例外を投げるのもありかなと思います。
これは LSP 違反だと思うのです。
http://www2.ocn.ne.jp/~yamagu/object/LSP-J.pdf
の Rectangle と Square の例[本当の問題]と同等な問題を内在させることになりそうです。
さて、こういう場合に「そもそも同一視すべきだったか」を私は問いたいのです。