2012-12-28 10 views
0

В следующем коде, что должно быть помещено между '<' и '>', чтобы я смог добавить новый объект каждого подкласса Animal superclass?ArrayList Объекты разных классов, принадлежащих к суперклассу?

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 и переопределяю его для каждого подкласса. Например, для амфибий -> Лягушка относится к классу амфибий и так далее.

+0

это будет только «Животное», так как u получит остаток класса от «Animal» Class –

ответ

2

Если сделать заявление

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

тогда вы сможете добавить любой подкласс животных к нему.

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()); 
+0

, это решило его. Это так глупо, что не в состоянии понять это. Благодарю. – user1837224

+0

yw приветствуется, не стесняйтесь отмечать вопрос как решенный, так как это поможет другим учащимся! –

+0

В мире прогамминга, как глупость, есть глупость, все это опыт, и я был на одном пути в какой-то момент моей жизни: P! –

1

Сделайте свою декларацию в своем ArrayList следующим образом.

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

Добавить подклассы животных.

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

и т.д.

Если вы используете Java SE7 другой способ создать экземпляр Generic (в вашем случае в ArrayList) является использование ограниченного вывода типа, как это.

ArrayList <Animal> animalList = new ArrayList<>(); 
Смежные вопросы