Прошу помочь, вроде бы все неплохо, но падает на 3м коте с null pointer
Exception in thread "main" java.lang.NullPointerException
at com.javarush.task.task06.task0621.Solution$Cat.toString(Solution.java:74)
at java.lang.String.valueOf(String.java:2994)
at java.io.PrintStream.println(PrintStream.java:821)
at com.javarush.task.task06.task0621.Solution.main(Solution.java:40)
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 grangF = reader.readLine();
String mother = reader.readLine();
String father = reader.readLine();
String grandM = reader.readLine();
String doter = reader.readLine();
String son = reader.readLine();
Cat grandFCat = new Cat(grangF);
Cat grandMCat = new Cat(grandM);
Cat fatherCat = new Cat(father, null, grandFCat);
Cat motherCat = new Cat(mother, grandMCat,null);
Cat sonCat = new Cat(son, motherCat, fatherCat);
Cat doterCat = new Cat(doter, motherCat, fatherCat);
System.out.println(grandFCat);
System.out.println(grandMCat);
System.out.println(fatherCat);
System.out.println(motherCat);
System.out.println(sonCat);
System.out.println(doterCat);
}
public static class Cat {
private String name;
private Cat father = null;
private Cat mother = null;
Cat(String name) {
this.name = name;
}
Cat(String name, Cat mother, Cat father) {
this.name = name;
if(mother != null)
this.mother = mother;
if(father != null)
this.father = father;
}
@Override
public String toString() {
String s = "The cat\'s name is " + name + ",";
if(mother != null)
s += " mother is " + mother.name + ",";
else
s += " no mother,";
if(father != null)
s += " father is " + mother.name;
else
s += " no father";
return s;
}
}
}