Search Here

Saturday, April 26, 2014

জাভা প্রোগ্রামিং [পর্ব-১৪] ::পলিমরফিজম

আজকে আমরা যেই জিনিসটি নিয়ে কথা বলব তা হল পলিমরফিসম(Polymorphism)।এটা শুধু জাভা না যেকোন অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং ল্যাঙ্গুয়েজ অনেক গুরুত্বপুর্ন একটি বিষয়।
সাধারনত পলিমরফিজম কথাটির অর্থ হল বহুরুপতা।যেমন ধরুন কার্বণ এর ২টি রুপ আছেঃ গ্রাফাইট এবং হীরক। কিন্তু ২টি রুপই কিন্তু আহ্মরিক অর্থে কার্বণ।
ঠিক তেমনি প্রোগ্রামিং ভায়ায়ও পলিমরফিজম বলতে বুঝায় একটি জিনিস(ফাংশন) এর কয়েকটি রুপ।
সহজ বাংলায় বললে দাঁড়ায় আমারা একি নামের ফাংশন অনেক গুলো ক্লাসে ব্যবহার করতে পারব কিন্তু এদের প্রত্যেক এর কাজ ভিন্ন ভিন্ন হবে।
কি আমার কথা মাথার উপর দিয়ে যাচ্ছে? আসুন তাহলে জটপট করে একটি ছোট কোড দেখে ফেলি তাহলে আমাদের সব কনফিউশন দূর হয়ে যাবে।
Apple class:

public class apple {
public void printme(){
System.out.println("I love Apple ");
 }
}
Microsoft class: 
public class Microsoft extends apple {
public void printme(){
System.out.println("I love Microsoft ");
 }
}
Facebook class:
public class facebook extends apple {
public void printme(){
System.out.println("I love Facebook ");
 }
}
Google class:
public class google {
public static void main(String[] args) {
apple ap1=new Microsoft();
apple ap2=new facebook();
ap1.printme();
ap2.printme();
}
 }
উপরের উদাহরনে “apple” হল প্যারেন্ট ক্লাস আর “microsoft” এবং “facebook” হল চাইল্ড ক্লাস।
তিনটি ক্লাসেরই একি নামের ফাংশন রয়েছে। পরবর্তীতে আমরা “google” ক্লাস থেকে “apple” ক্লাসের টাইপের
“microsoft” এবং “facebook” ক্লাসের ২টি অব্জেক্ট তৈরী করলাম। এখন যখন আমরা এই অবজেক্ট গুলোর সাহায্যে
“printme” ফাংশঙ্কে কল করলাম তখন আমরা দেখতে পেলাম যে তা যথাক্রমে “microsoft” এবং “” ক্লাসের 
“facebook” ফাংশনকে কল করছে। অর্থাৎ এখানে কার্বণ হল “apple” ক্লাস এর “printme” ফাংশন আর গ্রাফাইট 
এবং হীরক হল যথাক্রমে “google” এবং “facebook” ক্লাসের “printme” ফাংশন। এখানে আমরা দেখতে পেলাম যে
একই নামের ৩টি ফাংশন রয়েছে ৩টি ক্লাসে এবং ফাংশনগুলোর কাজ ও ভিন্ন ভিন্ন। এই জিনিস টিকেই বলা হয় পলিমরফিজম।

No comments:

Post a Comment