2017-02-04 14 views
0

私はちょうどJavaで少し遊んでいて、小さなDungeonゲームを実装しようとしました。クラスを自作クラスにキャストする

Ma現在の問題は、クラス「Monster」とクラス「Trap」があることです。さらに、モンスターかトラップのどちらかをランダムに選んで返し、ヒーローのステータスと比較して戻すクラス「Encounter」を持っています。

このモンスターやトラップをエンカウンターに変換する方法は実際にはありませんので、私はそれを使用できます。

これは出会いのための私の現在の方法である:

public Encounter generate(){ 
    Encounter encounter = new encounter(); 
    Trap trap1 = new Trap(random, trap1); 
    Monster monster1 = new Monster(random, random); 

    if (random > 5){ 
    encounter = (Encounter) Monster; (?) //this is where I need help 
..... 

まあ、私は私が.. throughouly十分にあなたの助けを事前に感謝し、問題を説明願っています!

(私は別の場所に見えたがslutionを見つけるdidntの、しかしまたは単にkeywoardを知られていない十分に懸命に見ていない可能性があります、それを言い訳してください)

+1

私はキャスティングのコンセプトを完全に理解していないかもしれないと思う... – Fapprentice

+1

インターフェイスについて – user2717954

+0

ああ、ランダムはちょうどランダムなintです、私はそこに不必要なコードを入れたくない、私の問題そのキーワードの – Fapprentice

答えて

1

だから、トラップまたはAのいずれかであることができるクラスの出会いを持っていますモンスターの場合、トラップとモンスターの両方が遭遇から継承する(またはインターフェースの遭遇を実装する)ので、いくつかの共有方法があり、それらをキャストすることができますが、実装していないとキャストすることはできません共通のインターフェースを持つか、共通のスーパークラスを共有します。

+0

を掘り下げるだろう。しかし、私はI(または単に抽象クラスでは?ということです) – Fapprentice

+0

ああ、私はちょうどそれをデフォルトにする必要があり、なったでしょうインターフェイスでコードを書くことができないだろうそれは:Dありがとう – Fapprentice

+0

抽象クラスは、コードyesのインタフェースに似ています。 –

関連する問題