Мозг сломал. Вывод верный. Чат перебрал, но не нашел подсказки.
Бабушку пропускает, а дедушку нет (хотя условие задано единое)
package com.javarush.task.task06.task0621;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/*
Родственные связи кошек
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Дедушка: ");
String dedName = reader.readLine(); //дедушка
Cat catDed = new Cat(dedName);
System.out.print("Бабушка: ");
String babName = reader.readLine(); //бабушка
Cat catBab = new Cat(babName);
System.out.print("Папа: ");
String fatherName = reader.readLine();
Cat catFather = new Cat(fatherName, null, catDed);
System.out.print("Мама: ");
String motherName = reader.readLine();
Cat catMother = new Cat(motherName,catBab, null);
System.out.print("Сын: ");
String sonName = reader.readLine();
Cat catSon = new Cat(sonName, catMother, catFather);
System.out.print("Дочь: ");
String daughterName = reader.readLine();
Cat catDaughter = new Cat(daughterName, catMother, catFather);
System.out.println(catDed);
System.out.println(catBab);
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 Momparent;
private Cat Papparent;
Cat(String name) {
this.name = name;
}
Cat(String name, Cat Momparent, Cat Papparent) {
this.name = name;
this.Momparent = Momparent;
this.Papparent = Papparent;
}
@Override
public String toString() {
if (Momparent == null) {
if (Papparent == null) return "The cat's name is " + name + ", no mother, no father";
else return "The cat's name is " + name + ", no mother, father is " + Papparent.name;
}
else if (Papparent == null) return "The cat's name is " + name + ", mother is " + Momparent.name + ", no father";
else
return "The cat's name is " + name + ", mother is " + Momparent.name + ", father is " + Papparent.name;
}
}
}