Помогите, не могу разобраться. Все сделал, не понимаю как сделать конструктор чтобы обозначить родителя папы (дедушку) и родителя мамы (бабушку).
При таком решении дедушка записывается на место мамы папы xD. Еще один конструктор (String, Cat) создать нельзя.
Барсик
Томси
Том
Нави
Васька
Изи
Cat name is Барсик, no mother , no father
Cat name is Томси, no mother , no father
Cat name is Том, mother is Барсик, no father
Cat name is Нави, mother is Томси, no father
Cat name is Васька, mother is Нави, father is Том
Cat 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 grandPapaName = reader.readLine();
Cat catGrandPapa = new Cat(grandPapaName);
String grandMotherName = reader.readLine();
Cat catGrandMother = new Cat(grandMotherName);
String papaName = reader.readLine();
Cat catPapa = new Cat(papaName, catGrandPapa);
String motherName = reader.readLine();
Cat catMother = new Cat(motherName, catGrandMother);
String sonName = reader.readLine();
Cat catSon = new Cat(sonName, catMother, catPapa);
String daughterName = reader.readLine();
Cat catDaughter = new Cat(daughterName, catMother, catPapa);
System.out.println(catGrandPapa);
System.out.println(catGrandMother);
System.out.println(catPapa);
System.out.println(catMother);
System.out.println(catSon);
System.out.println(catDaughter);
}
public static class Cat {
private String name;
private Cat parentMom;
private Cat parentDad;
Cat(String name) {
this.name = name;
}
Cat(String name, Cat parentMom){
this.name = name;
this.parentMom = parentMom;
}
Cat(String name, Cat parentMom, Cat parentDad) {
this.name = name;
this.parentMom = parentMom;
this.parentDad = parentDad;
}
@Override
public String toString() {
if (parentMom == null && parentDad == null)
return "Cat name is " + name + ", no mother " + ", no father ";
else if (parentMom == null)
return "Cat name is " + name + ", no mother " + ", father is " + parentDad.name;
else if (parentDad == null)
return "Cat name is " + name + ", mother is " + parentMom.name + ", no father ";
else
return "Cat name is " + name + ", mother is " + parentMom.name + ", father is " + parentDad.name;
}
}
}