JAVAで質問です。 現在、進撃の巨人を参考にバトルのプログラミングを書いています。

ベストアンサー

0

その他の回答(1件)

1

※ 私はあまり進撃の巨人は見ていません。(シーズン1ぐらい?) >> (ユミルの民だけが巨人になれる/巨人の種類は進撃、鎧、獣、超巨大等いくつか種類があります) ロジックによって違うと思いますが、 もしかして、Titanって、「進撃なら~、鎧なら~」とかみたいにやっていませんか? もし、そうなら、私なら、 Titan は abstract にして、 abstruct Titan extends Yumiru{} で、基本的な感じにします。 あるいは、ガンダムとかみたいに、「乗り込むタイプ」だと仮定するなら、 abstract な Titanを用意して、これに Yumiruのオブジェクトを渡してフィールドとして保持させる。 あれって、どっちなんでしょうねぇ… 乗り込むタイプとも見えるし、自身だとも見えるし… そして、ここからが問題。 Titanは進撃、鎧とかみたいな種類があるんですよね? それなら、「Titanを継承する」です。 獣系だと、BeastTitan として、 public BeastTitan extends Titan{...} みたいに継承する。 もしTitanをインターフェースとしているなら実装ですが。 そうすると、 Titan titan1 = new BeastTitan( yumiru1 ); Titan titan2 = new ArmorTitan( yumiru2 ); if( titan1.attack( titan2 ) )... のように省略できるはずです。 つまり、継承って、「子でnewして、親で保持する」ことで、 「オブジェクトに処理を任せる」、つまり「オブジェクトだけがデータと処理を知っている」っていう状態にする事ですから。 ただし、内部のロジックがどうなっているかとかにもよると思いますよ。

1人がナイス!しています

>> 当方の場合でこちらと同様にしてみたところ、Staticでないとダメだと... 意味が分かりません。 質問にあるコードではなんら問題ないはずですが。(せいぜい、終了の"}"が抜けていることぐらい。おそらく投稿するときに抜けたんだと思う…) もしかして、「オブジェクト指向」が何たるかを理解していないのでは?