来る11/1310/13、品川にて Japan MVP Summit ゆーのんが開催されます。
いましがたそのプログラムが届きました。
その内容はまぁおいといて、最後にFAQがあったわけっす。
そのひとつ:
Q: バナナはおやつですか?
A: 今回はおやつの金額などは設定しておりませんので、
ご自由にご判断ください。
残念ながらオブジェクト指向的には"好きにしろ"が不可能です。
こんなモデルが考えられます:
interface I食える { ... }
interface Iおやつ : I食える {}
interface Iごはん : I食える {}
class バナナ : Iおやつ {}
あるいは
class バナナ : Iごはん {}
んー、interfaceは複数実装できるので
class バナナ : Iおやつ, Iごはん {}
ってできるわけで、チビちゃん達は納得しませんねー
abstract class 抽象おやつ : Iおやつ {}
abstract class 抽象ごはん : Iごはん {}
class バナナ : 抽象おやつ {}
あるいは
class バナナ : 抽象ごはん {}
これならバナナはどちらかはっきりしますですねぃ。
多重実装させないがために(たとえそのナカミがからっぽでも)
抽象おやつ/抽象ごはん を定義するのはなーんかキモチ良くないけども。
...なんてコト考えてました。オブ熱にうかされてます(謎