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 回答