Overriding - same method names with same arguments and same return types associated in a class and its subclass.
Overloading - same method name with different arguments, may or may not be same return type written in the same class itself.
Overloading - same method name with different arguments, may or may not be same return type written in the same class itself.