Вывод в консоль:
The cat's name is Вова, no mother, no father
The cat's name is Маша, no mother, no father
The cat's name is Саша, mother is Вова no father
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 Саша
Ошибка в третьем случае, я так понимаю, что дело в конструкторе. Помогите найти ошибку.
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));
String grandfName = reader.readLine();
Cat catGrandf = new Cat(grandfName);
String grannyName = reader.readLine();
Cat catGranny = new Cat(grannyName);
String fatherName =reader.readLine();
Cat catFather = new Cat(fatherName, catGrandf);
String motherName = reader.readLine();
Cat catMother = new Cat(motherName, catGranny);
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(catGrandf);
System.out.println(catGranny);
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 parent1;
private Cat parent2;
Cat(String name) {
this.name = name;
}
Cat(String name, Cat parent1) {
this.name = name;
this.parent1 = parent1;
this.parent2=null;
}
Cat(Cat parent2) {
this.name = name;
this.parent1 = null;
this.parent2=parent2;
}
Cat(String name, Cat parent1, Cat parent2) {
this.name = name;
this.parent1 = parent1;
this.parent2=parent2;
}
@Override
public String toString() {
if (parent1==null && parent2==null)
return "The cat's name is " + name + ", no mother, no father ";
else if (parent1==null)
return "The cat's name is " + name + ", no mother, father is " + parent2.name;
else if (parent2 == null)
return "The cat's name is " + name + ", mother is "+ parent1.name + " no father ";
else
return "The cat's name is " + name + ", mother is " + parent1.name + " , father is " + parent2.name;
}
}
}