Suppose there is a class by name ABC and if you do not write/provide any constructors then compiler will insert a default constructor something like this:
This will be written as following code by compiler:
So in your example, super class has one argument constructor. In this case compiler will not insert default constructor. Your sub class Cat does not have any constructors, so it will try to call super() but there is no zero argument constructor in Animal class.
You have to provide a no argument constructor for Animal class.
Class Cat extends Animal and Cat will try to make a super() call from its default constructor. Since, compiler doesn't find such a constructor in the super class, it will raise a compiler error. Class Cat will actually looks like the following...