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

Java 如果有不同的构造函数,如何使用继承将两个不同的动物添加到文本文件中?,java,inheritance,arraylist,Java,Inheritance,Arraylist,我正在尝试使用继承将两种不同的动物添加到一个文本文件中,一只猫和一只狗。问题是,它们有不同的构造函数,我不知道如何将它们分别放在程序的同一个文本文件中,因为程序也使用用户界面 我不确定我是否理解你的问题 您有一个文本文件,其中编写了猫狗信息。您希望将它们传递到您的程序中。 那个文本文件在你的控制下吗?当你开始读它的时候,你能理解它是一只猫还是一只狗吗?喜欢 动物类型:猫 动物名称:fluffy ... 如果是: int numAnimals=infle.nextInt(); infle.next

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

我不确定我是否理解你的问题

您有一个文本文件,其中编写了猫狗信息。您希望将它们传递到您的程序中。 那个文本文件在你的控制下吗?当你开始读它的时候,你能理解它是一只猫还是一只狗吗?喜欢
动物类型:猫
动物名称:fluffy
... 如果是:

int numAnimals=infle.nextInt();
infle.nextLine();
犬舍名称(犬舍名称);
对于(int i=0;i

给猫写同样的方法,就这样。由于狗类是从动物类遗传而来的,所以狗也是一种动物。因此,您可以将其作为动物添加到您的动物列表中。希望这会有所帮助。

您的意思是说输入文件可能包含两种不同的动物吗?是的,但只有一个或两个不同的构造函数值,它们中的大多数都是相同的,例如动物的名称和它最喜欢的食物,但它们有不同的布尔值,因此,我不确定如何将它们与不同的构造函数一起添加到文本文件中,因为用户界面必须更改或其他什么,我不知道如何创建单独的ArrayList,因为如果我有一个用于猫的ArrayList和一个用于狗的ArrayList,这将不是继承,更具可读性=更多响应您想要的听起来很简单。这都是关于Java的基础知识。您希望不同的动物写入同一文本文件还是不同的文本文件?不,程序写入文本文件,当用户在界面中输入不同的值时,程序将该信息发送到文本文件。是的,我控制着这个文本文件,我对它进行了格式化,使值显示在不同的行上。是的,我刚刚在添加一种动物类型,以前没有。好吧,不管怎样,我的答案应该会让你满意吧?如果你还有问题,请告诉我。
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);
}