যখন একটা  class এ,  same নামের একের আধিক method define থাকে,  but এর parameter আলাদা আলাদা থাকে, একে Method Overloading / Compile Time Polymorphism বলে ।
জাভাতে Method Overloading  এর 3 টি উপায় আছে
  1. parameters অথবা arguments এর data type (int, Float, String etc) পরিবর্তন করে Ex-1:
class Show {
   public void add(int a, int b){};
   public void add(int a, float b){};
}

NB: Same Method এর Parameter / Argument এর type আলাদা আলাদা হতে হবে,(parameter same type এর হওয়া যাবে না)
2. parameters অথবা arguments এর number  পরিবর্তন করে   Ex-1:
class Show {
   public void add(int a, int b){};
   public void add(int a,int b,int c){};
}

NB: Same Method এর Parameter / Argument এর Number আলাদা আলাদা হতে হবে,
(১ম অ্যাড মেথড এ (int a, int b) ও ২য় অ্যাড মেথড এ (int a, int b) নম্বর একই হওয়া যাবে না )



3. parameters অথবা arguments এর Sequence পরিবর্তন করে    Ex-1:
class Show {
   public void add(int X, Float Y){};
   public void add(Float X, int Y){};
}

NB: Same Method এর Parameter / Argument এর Sequence আলাদা আলাদা হতে হবে,(parameter er Sequence same হওয়া যাবে না)