Подскажите, пожалуйста, почему решение не проходит проверку.
В IDE вывод корректный.
package com.javarush.task.task06.task0621;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/*
Родственные связи кошек
Задача: У каждой кошки есть имя и кошка-мама.
Создать класс, который бы описывал данную ситуацию.
Создать два объекта: кошку-дочь и кошку-маму.
Вывести их на экран.
Новая задача: У каждой кошки есть имя, кошка-папа и кошка-мама.
Изменить класс Cat так, чтобы он мог описать данную ситуацию.
Создать 6 объектов: дедушку (папин папа), бабушку (мамина мама), папу, маму, сына, дочь.
Вывести их всех на экран в порядке: дедушка, бабушка, папа, мама, сын, дочь.
Пример ввода:
дедушка Вася
бабушка Мурка
папа Котофей
мама Василиса
сын Мурчик
дочь Пушинка
Пример вывода:
The cat's name is дедушка Вася, no mother, no father
The cat's name is бабушка Мурка, no mother, no father
The cat's name is папа Котофей, no mother, father is дедушка Вася
The cat's name is мама Василиса, mother is бабушка Мурка, no father
The cat's name is сын Мурчик, mother is мама Василиса, father is папа Котофей
The cat's name is дочь Пушинка, mother is мама Василиса, father is папа Котофей
Требования:
1. Программа должна считывать имена 6 котов в указанном порядке.
2. Метод main должен создавать 6 объектов типа Cat.
3. Программа должна выводить 6 строк с информацией о котах.
4. Строка про дедушку (первая) должна соответствовать условию.
5. Строка про бабушку (вторая) должна соответствовать условию.
6. Строка про папу (третья) должна соответствовать условию.
7. Строка про маму (четвертая) должна соответствовать условию.
8. Строка про сына (пятая) должна соответствовать условию.
9. Строка про дочь (шестая) должна соответствовать условию.
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String grandFatherName = reader.readLine();
Cat catGrandFather = new Cat(grandFatherName);
String grandMotherName = reader.readLine();
Cat catGrandMother = new Cat(grandMotherName);
String fatherName = reader.readLine();
Cat catFather = new Cat(fatherName, catGrandFather);
String motherName = reader.readLine();
Cat catMother = new Cat(motherName, catGrandMother);
String sonName = reader.readLine();
Cat catSon = new Cat(sonName, catMother, catFather);
String daughterName = reader.readLine();
Cat catDaughter = new Cat(daughterName, catMother, catFather);
System.out.println(catGrandFather.name);
System.out.println(catGrandMother);
System.out.println(catFather);
System.out.println(catMother);
System.out.println(catSon);
System.out.println(catDaughter);
}
public static class Cat {
private String name;
private Cat parent;
private Cat catMother;
private Cat catFather;
Cat(String name) {
this.name = name;
}
Cat(String name, Cat parent) {
this.name = name;
this.parent = parent;
}
public Cat(String name, Cat catMother, Cat catFather) {
this.name = name;
this.catMother = catMother;
this.catFather = catFather;
}
@Override
public String toString() {
if (catMother == null && catFather == null && parent == null) {
return "The cat's name is " + this.name + ", no mother, no father";
} else if (catMother != null && catFather != null) {
return "The cat's name is " + this.name + ", mother is " + catMother.name + ", father is " + catFather.name;
} else if (this.name.substring(0,4).toLowerCase().equals("папа")) {
return "The cat's name is " + this.name + ", no mother, father is " + parent.name;
} else if (this.name.substring(0,4).toLowerCase().equals("мама")) {
return "The cat's name is " + this.name + ", mother is " + parent.name + ", no father";
}
return null;
}
}
}