車1.ワイパー()

は納得いくが、

車1.洗車()

は確かに気持ち悪い。
洗車機能は、洗車機にあるのであって、車にあるわけではない。
そいういうときはstaticで

洗車機::洗車(車1)

とすれば無問題なのかもしれない。

だが、多数の自動車インスタンスを一括して洗車()したい場合、どうするか?
という問題がある。
もちろん、いろいろなタイプの自動車が入り混じっているし、
続々と新車が発表されている。
で、解決に、

foreach (車配列){ ((洗車可能)車).洗車(); }

のような一括処理のために、やっぱり、車クラスに洗車メソッドを付けてしまう。
一見エレガントでも、こういうのは気持ち悪いと言われればそうかもしれない。
でもこれはOOPの問題というより、クラス設計の問題だが・・・