I solved the task , but i have a question . I took only a part from the task (before we simplify it like demanded in the task) , to express what i mean simplier : public class Main { public static void main(String[] args) { } public static class NakedCat { public NakedCat() { super(); } } public static class NormalCat extends NakedCat { public NormalCat() { super(); } } } We already know that super() is used to call the parent constructor , but the thing that confuses me here is that NakedCat is already the parent class and has no parent class , so logically calling super() in its constructor makes no sense and should make an error