The basic and important reason for not being able to distinguish is to avoid Diamond problem in
Java which causes confusion as to which method is inherited from two different subtypes.
This is also the reason interfaces were brought in Java and the abstract methods which don't have any body and hence no confusion as to which method is being inherited and overridden.