"হ্যালো, অ্যামিগো! আমি আপনাকে পদ্ধতি ওভারলোডিং সম্পর্কে বলতে যাচ্ছি ।"

"আপনি তাদের ওভারলোড করতে পারেন?! কি একটি দিন!"

"আপনি তাদের সাথে অনেক কিছু করতে পারেন, কিন্তু আমরা এখনই এটিতে যাব না।"

"এটা একটা চুক্তি."

"ওভারলোডিং একটি খুব সাধারণ অপারেশন। আসলে, এটি পদ্ধতির উপর একটি অপারেশনও নয়, যদিও এটি কখনও কখনও একটি ভীতিকর নাম দ্বারা উল্লেখ করা হয়: প্যারামেট্রিক পলিমারফিজম ।"

আপনাকে অবশ্যই মনে রাখতে হবে যে একটি ক্লাসের প্রতিটি পদ্ধতির একটি অনন্য নাম থাকতে হবে।

"হ্যাঁ আমি জানি."

"ঠিক আছে, এটা সম্পূর্ণ সত্য নয়। আমি বলতে চাচ্ছি, এটি মোটেও সত্য নয়। একটি পদ্ধতির একটি অনন্য নাম থাকতে হবে না। যা অনন্য হতে হবে তা হল একটি পদ্ধতির নাম এবং এর পরামিতির প্রকারের সমন্বয়। এই সংমিশ্রণটিও একটি পদ্ধতি স্বাক্ষর হিসাবে পরিচিত।"

কোড মন্তব্য
public void print();
public void print2();
এটি অনুমোদিত। দুটি পদ্ধতির অনন্য নাম রয়েছে।
public void print();
public void print(int n);
এবং এটিও অনুমোদিত। দুটি পদ্ধতির অনন্য নাম (স্বাক্ষর) রয়েছে।
public void print(int n, int n2);
public void print(int n);
পদ্ধতির নামগুলি এখনও এখানে অনন্য।
public int print(int a);
public void print(int n);
কিন্তু এটা অনুমোদিত নয়। পদ্ধতিগুলি অনন্য নয়, যদিও বিভিন্ন ধরণের পাস করা হচ্ছে।
public int print(int a, long b);
public long print(long b, int a);
কিন্তু এটা অনুমোদিত। পদ্ধতি পরামিতি অনন্য.

"আমি ইতিমধ্যে এটি কোথাও দেখেছি।"

"হ্যাঁ। আপনি যখন " System.out.println " টাইপ করেন, তখন IntelliJ IDEA প্রিন্ট পদ্ধতির কয়েক ডজন সংস্করণ প্রস্তাব করে যা বিভিন্ন পরামিতি ব্যবহার করে। কম্পাইলার কেবলমাত্র আপনার পাস করা প্যারামিটারগুলির প্রকারের উপর ভিত্তি করে প্রয়োজনীয় পদ্ধতিটি সনাক্ত করে এবং কল করে৷

"এটা এত কঠিন নয়। কিন্তু এটা পলিমরফিজম নয়।"

"বা আরও সঠিকভাবে, এটি পদ্ধতি ওভাররাইডিং নয়।"

যাইহোক, আমি নির্দেশ করতে চাই যে প্যারামিটারের নামগুলি অপ্রাসঙ্গিক। তারা সংকলন সময় হারিয়ে গেছে. একবার একটি পদ্ধতি মেনে চলা হলে, শুধুমাত্র তার নাম এবং পরামিতি প্রকারগুলি জানা যায়।