在以下代码中,应该在'<'之间放置什么和'>'这样我就可以添加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类中创建一个方法并为每个子类重写它。例如对于两栖动物 - &gt;青蛙属于两栖类等等。
答案 0 :(得分: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());
答案 1 :(得分:2)
如果您发表声明
ArrayList <Animal> animalList = new ArrayList<Animal>();
然后你就可以添加Animal的任何子类了。
答案 2 :(得分: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<>();