1) abstract class Feline implements Animal { }
Feline is abstract class. Since it is not concrete it does not need to implement Animal methods.
2) abstract class Feline implements Animal { void eat(); }
eat() in Animal is public (like all methods in interfaces). That's why this won't compile.
3) abstract class Feline implements Animal { public void eat(); }
eat() is not marked abstract, so Feline should provide implementation. But there is not curly braces so there is no implementation. Compilation error.
4) abstract class Feline implements Animal { public void eat() { } }
correct implementation of interface (even if method eat() is not doing much
)
5) abstract class Feline implements Animal { abstract public void eat(); }
perfectly ok. Abstract class with abstract method.
abstract public void eat(); is redundant since it is already declared in Animal interface.
Hope it helps.