Don't go too technical at first, try to understand from the meaning. Meaning of polymorphism in OOP is ability of object to behave differently. now lets think how method overloading represent polymorphism
Method Overloading is Polymorphism
In OOP method represents a behavior, using method overloading technique in java you can create a method which has the same name but different parameter list, now lets start thinking.. same name means --> same behavior but we know even though the name is similar behavior is not exactly the same.. in simple words polymorphic
example : you have eat method in human class now you create another eat method with different parameter list, according to which method you call expected behavior changes.
Method Overriding is Polymorphism
then how method overriding is polymorphism? lets try to figure this out.
in method override you override a method which is defined in the super class.
ex : human has a eat method and now you create a SuperHuman class which is a subclass of the human and then override the eat method
so we know that SuperHuman is also having ability to eat but differently, but not like overloading now here we have a problem of demonstrating the polymorphism. Why because if you create a instance of human then there is one method so there is no polymorphic behavior. same as if you create a instance of SuperHuman then there is one method and one expected behavior so there is no polymorphism. so this is how we demonstrate
Human a = new Human();
a.eat();
Human b = new SuperHuman();
b.eat();
we can't simply say which method does which output by looking at only the left side because both "a" and "b" are Human type so compiler can't be certain what will be the output of a.eat() and b.eat() until code actually runs so it is polymorphic.