Reachvijay Kumar: Welcome.
This sort of question comes up frequently. Try
here. Adne has told you part of it, but has forgotten that you don't have multiple inheritance.
Imagine the scenario class Animal, class Cat, class Goldfish, class Budgerigar. You have never seen an animal, but you have seen a cat a budgerigar and a goldfish (though maybe not in the same place

). so make the Animal class abstract.
Again. Try class Vehicle, class Car, class Motorcycle, class Truck. Make Vehicle abstract.
In all those cases one can say "a cat is an animal," or, "a bus is a vehicle."
As Adne says, you can have implemented methods in those abstract classes, where you expect the behaviour to be the same in most cases.
You can use abstract methods in your abstract classes as well, where you expect them to be different in most cases, so the Animal.eat() method would be abstract.
An abstract method requires the concrete subclasses to implement it appropriately.
An interface describes a behaviour or set of behaviours. You may have to use an interface because methods require it, eg the Arrays.sort() method requires the objects sorted to implement the Comparable interface.
An interface has any number of abstract methods, eg java.langComparable has 1, java.awt.event.MouseListener has 5, java.util.List has 27, and java.io.Serializable has none.
An interface represents several abstract methods. It is a little like having a very abstract class. All the methods in your interfaces have to be implemented in every concrete class implementing them (but an implementation in a superclass will count).
Most programmers use interfaces with relatively few methods; there are lots of classes which implement java.util.List, but we take them unchanged from the API.
The real advantage of interfaces is that you can use several of them without messing up your inheritance.
There are several other threads about multiple inheritance, which might or might not be of interest.
Here. Here. And a rather old but short and pithy thread on the advancde forum. CR