I can not figure out how to correctly describe the condition in static methods.
3 and 4 condition if he compares his objects and thinks that father and mother cat are the same but how to describe these objects more specifically. Since all other conditions are true but they have the same content. And here the content is different so the mother is the daughter of catGrandmother and the father is the son of catGrandfather . According to the task, they must all be static.
public class Main { 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); 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 parent2; Cat(String name) { this.name = name; } Cat(String name, Cat parent) { this.name = name; this.parent = parent; } Cat(String name, Cat parent, Cat parent2){ this.name = name; this.parent = parent; this.parent2 = parent2; } @Override public String toString() { if (parent == null) return "Cat name is " + name + ", no mother, no father "; else if (parent2 == null) return "Cat name is " + name + ", no mother, father is " + parent.name; else if (parent == null && parent2 == null) return "Cat name is " + name + ", mother is " + parent.name +", no father"; else if (parent2 == null) return "Cat name is " + name + ", mother is " + parent.name +", no father"; else return "Cat name is " + name + ", mother is " + parent.name +", father is "+parent2.name; } } }