- オブジェクト指向なんて今すぐやめてください
195 :デフォルトの名無しさん[sage]:2014/04/05(土) 00:26:33.29 ID:uFCYQY3d - まあ、問題があるとすればRectangle.new(3.3)ってやっても、正方形として扱えないってことだな。
でもそれはRectangleとSqueareが AbstractRectangle(仮)という抽象クラスから派生したものであっても同様に抱える問題だ。
|
- オブジェクト指向なんて今すぐやめてください
197 :デフォルトの名無しさん[sage]:2014/04/05(土) 01:36:33.37 ID:uFCYQY3d - 大丈夫だ問題ない。
|
- オブジェクト指向なんて今すぐやめてください
198 :デフォルトの名無しさん[sage]:2014/04/05(土) 01:37:07.19 ID:uFCYQY3d - つか、お前がその問題を解説する役割じゃないのかよw
|
- オブジェクト指向なんて今すぐやめてください
220 :デフォルトの名無しさん[sage]:2014/04/05(土) 19:50:11.00 ID:uFCYQY3d - >>210
(2)について、 >>211のAbstractRectangleが許されるなら、 >>194においてwidthとheightをprivateにしていい。 そうすれば幅と高さの違う正方形は生まれない。 (3)は、適切な計算式を使うようにオーバーライドすれば良い。 問題があるとすれば(1)だけ。
|
- オブジェクト指向なんて今すぐやめてください
226 :デフォルトの名無しさん[sage]:2014/04/05(土) 21:11:20.38 ID:uFCYQY3d - 抽象-具象 というのは、javaで言うところのinterfaceなんじゃないかという気がしてきた。
ちなみにrubyやC++にはinterface無いからね。
|
- オブジェクト指向なんて今すぐやめてください
232 :デフォルトの名無しさん[sage]:2014/04/05(土) 21:34:50.39 ID:uFCYQY3d - >>228
>>210 の (1)を懸念した結果として、>>211 の AbstractRectangleのようなものが出来てるので、 これはinterfaceの話。 abstract classならデフォルトのデータセットや実装を持てるから(1)に対する答えとならない。
|