1. Overloading is the concept of compile time polymorphism whereas Overriding is the concept of runtime polymorphism
2. Overloading is same method name with different Signatures whereas Overriding is Methods name and signatures must be same.
3. Two functions having same name and return type, but with different type and/or number of arguments is called as Overloading whereas When a function of base class is re-defined in the derived class called as Overriding
4. It doesn't need inheritance. Whereas It needs inheritance.
5. Method can have different data types whereas Method should have same data type.
6. Method can be different access specifies whereas Method should be public.