Why do we use interface in java? what is the concept behind interface when we already have classes? is it necessary for interfaces to have abstract methods?can we have both abstract and non abstract methods? what will happen if we just declare methods but do not define it as abstract inside interface? what will that body structure be called /referred in which just define the methods but do not mention the methods as abstract? How does interface differs from abstract class?