Everything works except the third call to write out the father's name and grandfather's name. I'm really confused on this one because all the other conditions work. Your help is appreciated.
package com.codegym.task.task06.task0621;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/*
Cat relations
*/
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,null);
String grandmotherName = reader.readLine();
Cat catgrandMother = new Cat(grandmotherName,null,null);
String fatherName = reader.readLine();
Cat catFather = new Cat(fatherName, grandfatherName);
String motherName = reader.readLine();
Cat catMother = new Cat(motherName, grandmotherName, null);
String sonName = reader.readLine();
Cat catSon = new Cat(sonName, motherName, fatherName);
String daughterName = reader.readLine();
Cat catDaughter = new Cat(daughterName, motherName, fatherName);
System.out.println(catgrandFather);
System.out.println(catgrandMother);
System.out.println(fatherName);
System.out.println(catMother);
System.out.println(catSon);
System.out.println(catDaughter);
}
public static class Cat {
private String name;
private String mother;
private String father;
private Cat parent;
Cat(String name, String father) {
this.name = name;
this.father = father;
}
Cat(String name, String mother, String father) {
this.name = name;
this.father = father;
this.mother = mother;
}
@Override
public String toString() {
if(father == null && mother == null){
return "The cat's name is " +name+", no mother, no father";
}else if(mother == null){
return "The cat's name is "+name+", no mother, "+father+" is the father";
}else if(father == null){
return "The cat's name is "+name+", "+mother+" is the mother, no father";
}else{
return "The cat's name is "+name+", "+mother+" is the mother, "+father+" is the father";
}
}
}
}