সাধারনত পলিমরফিজম কথাটির অর্থ হল বহুরুপতা।যেমন ধরুন কার্বণ এর ২টি রুপ আছেঃ গ্রাফাইট এবং হীরক। কিন্তু ২টি রুপই কিন্তু আহ্মরিক অর্থে কার্বণ।
ঠিক তেমনি প্রোগ্রামিং ভায়ায়ও পলিমরফিজম বলতে বুঝায় একটি জিনিস(ফাংশন) এর কয়েকটি রুপ।
সহজ বাংলায় বললে দাঁড়ায় আমারা একি নামের ফাংশন অনেক গুলো ক্লাসে ব্যবহার করতে পারব কিন্তু এদের প্রত্যেক এর কাজ ভিন্ন ভিন্ন হবে।
কি আমার কথা মাথার উপর দিয়ে যাচ্ছে? আসুন তাহলে জটপট করে একটি ছোট কোড দেখে ফেলি তাহলে আমাদের সব কনফিউশন দূর হয়ে যাবে।
Apple class:
publicclassapple {
publicvoidprintme(){
System.out.println("I love Apple ");}}Microsoft class:publicclassMicrosoftextendsapple {publicvoidprintme(){System.out.println("I love Microsoft ");}}Facebook class:publicclassextendsapple {publicvoidprintme(){System.out.println("I love Facebook ");}}Google class:publicclassgoogle {publicstaticvoidmain(String[] args) {apple ap1=newMicrosoft();apple ap2=newfacebook();ap1.printme();ap2.printme();}}উপরের উদাহরনে “apple” হল প্যারেন্ট ক্লাস আর “microsoft” এবং “facebook” হল চাইল্ড ক্লাস।তিনটি ক্লাসেরই একি নামের ফাংশন রয়েছে। পরবর্তীতে আমরা “google” ক্লাস থেকে “apple” ক্লাসের টাইপের“microsoft” এবং “facebook” ক্লাসের ২টি অব্জেক্ট তৈরী করলাম। এখন যখন আমরা এই অবজেক্ট গুলোর সাহায্যে“printme” ফাংশঙ্কে কল করলাম তখন আমরা দেখতে পেলাম যে তা যথাক্রমে “microsoft” এবং “” ক্লাসের“facebook” ফাংশনকে কল করছে। অর্থাৎ এখানে কার্বণ হল “apple” ক্লাস এর “printme” ফাংশন আর গ্রাফাইটএবং হীরক হল যথাক্রমে “google” এবং “facebook” ক্লাসের “printme” ফাংশন। এখানে আমরা দেখতে পেলাম যেএকই নামের ৩টি ফাংশন রয়েছে ৩টি ক্লাসে এবং ফাংশনগুলোর কাজ ও ভিন্ন ভিন্ন। এই জিনিস টিকেই বলা হয় পলিমরফিজম।
No comments:
Post a Comment