The question is when we declare a method as abstract in a class we have to implement its body in the very first concrete class below it(in the inheritance tree). Why is the necessity to do this so that the lower subclasses can access those methods. In any case the lower subclasses will be extending to the class where the abstract methods are defined. Is there any specific reason for this or it is due to the thing that java is designed like this?
What you mean is that an object must implement every method it has. If you try calling an abstract method on an object it would cause all sorts of errors. So abstract methods have to be implemented on any objects of that class (or its subclasses).