0

次のコードでは、Animal スーパークラスの各サブクラスの新しいオブジェクトを追加できるように、'<' と '>' の間に何を入力する必要がありますか?

package animal;

import javax.swing.JOptionPane;
import java.util.ArrayList;

public class Animal {

    public static void main(String[] args) {
        Animal createAnimals = new Animal();
        createAnimals.userInputHandle();

        ArrayList <> animalList = new ArrayList<>(); 
        animalList.add(new Dog);

    }

    private String userInputHandle(){

        String userInput;
        userInput = JOptionPane.showInputDialog("Select animal from the "
                + "following list"
                + "\n1.Dog\n2.Cat\n3.Snake\n4.Frog"
                + "\n5.Human\n6.Shark\n7.Sea Gulls");
        userInput = userInput.toLowerCase();

    return userInput;}
}

class Fish extends Animal{




}
class Amphibians extends Animal{

}
class Reptiles extends Animal{}
class Birds extends Animal{}

そのため、Animal クラスでメソッドを作成し、サブクラスごとにオーバーライドします。たとえば、両生類の場合->カエルは両生類のクラスに属します。

4

3 に答える 3

3
// this will work fine as 'Animal' will be base class for other class
ArrayList <Animal> animalList = new ArrayList<Animal>(); 
//
animalList.add(new Reptiles());
animalList.add(new Birds());
animalList.add(new Amphibians());
于 2012-12-28T16:36:59.110 に答える
2

宣言をすれば

ArrayList <Animal> animalList = new ArrayList<Animal>(); 

次に、Animal の任意のサブクラスをそれに追加できます。

于 2012-12-28T16:36:52.500 に答える
1

このように ArrayList で宣言を行います。

ArrayList <Animal> animalList = new ArrayList<Animal>();

Animal のサブクラスを追加します。

animalList.add(new Monkey());
animalList.add(new Donkey());

や。。など。

Java SE7 を使用している場合、Generic (あなたの場合は ArrayList) をインスタンス化する別の方法は、このような制限された型推論を使用することです。

ArrayList <Animal> animalList = new ArrayList<>();
于 2012-12-28T17:53:41.530 に答える