You can actually extend interfaces in Java, but it would still be called an interface.
Then you can use this extended interface implemented in your abstract class.
interface InterfaceName
{
public void foo();
}
public interface ExtendedInterface extends InterfaceName
{
public void bar();
}
public class ClassName implements ExtendedInteface
{
//implementation for all methods in InterfaceName and ExtendedInteface
...
}
Praveen, its just the way the designers designed it. It goes back to the philosophy of Java and the way classes and interfaces are meant to be used.
Lets say you have following classes: Student, Professor, Employee, Technician. And following interfaces: Demography, Paydetails and Personaldetails.
Ideally, classes professor and technician can be both extended from the class employee and it makes sense. However, imagine extending class Technician from Demography or Personaldetails. It doesnt make sense. Its like extending class sky from class blue. Just cause you can do doesnt mean you should do it. However, it makes more sense to have a class technician extend from employee and implement interfaces like Paydetails or demography. Its like extending sky from nature but implementing interface blue (giving it function capabilities of blue).
This is the basic reason why Java developers were against multiple inheritance (unlike cpp) and instead use interfaces. In your question, it doesnt matter if the class is abstract or not. You simple cant extend from an interface cause it does not make sense logically.