如果它们有不同的构造函数,如何使用继承将2个不同的动物添加到文本文件中?

时间:2015-04-17 10:26:36

标签: java inheritance arraylist

我试图使用继承将2种不同的动物添加到文本文件中,即猫和狗。问题是,它们有不同的构造函数,我不知道如何将它们分别放入同一文本文件中,因为程序也使用了用户界面。

1 个答案:

答案 0 :(得分:0)

我不确定如果我理解你的问题。

您有一个文本文件,其中写有狗和猫的信息。你想将它们传递给你的程序。 该文本文件是否在您的控制范围内?当你开始从中读取它时,你能理解它在开始时是猫还是狗?喜欢 animal type: cat animal name: fluffy ... 如果是的话:

int numAnimals = infile.nextInt();
infile.nextLine();
kennel.setName(kennelName);
for (int i = 0; i < numAnimals; i++) {
  if(infile.nextLine().equals("cat")) {
    Cat cat = readCat(infile);
    kennel.addAnimals(cat);
}
  else if(infile.nextLine().equals("dog")){
    Dog dog = readDog(infile);
    kennel.addAnimals(dog);
}
}

public Dog readDog(Scanner infile) {
  //same as your dog reading part except the last part
  return new Dog(animalName, owners, likesBones, favFood,
      feedsPerDay);
}

为猫编写相同的方法,然后你去。由于狗类是从动物类继承的,因此狗也是动物。因此,您可以将其作为动物添加到动物列表中。希望这有帮助。