1オブジェクトを作成します。
私は方法は、受信名に応じて異なるオブジェクトを作成戦いたい、そして最終的には既にこのインタフェースを実装し、これらの3つのオブジェクトpalntインタフェースであるメソッドを呼び出します。私は場合にのみ、その範囲内の植物を宣言しかし、次のランタイムコードが間違っている{}が直接バック有効であるため、間違った使用。
公共 のボイドの戦い(文字列名){ 場合( "ビーン" .equals(名)){ 植物工場 = 新しいビーン(); } それ以外の 場合( "アイス" .equals(名)){ 植物工場 = 新しいアイス(); } 他{ 植物工場 = 新たな壁()。 } plant.fight()。 }
正しい方法
植物工場= nullを。 もし( "豆" .equals(名)){ 植物 = 新しいビーン(); } そう であれば( "氷" .equals(名)){ 植物 = 新しい氷()。 } 他{ 植物 = 新たな壁()。 } plant.fight()。