Polymorphism

Polymorphism

কালো পর্দার আন্ধারে, আছস কোন বান্দারে:

ধর তোর তিনটা পাখি আছে। কাক, কোকিল আর টিয়া। এই পাখিগুলাকে নিয়ে প্রোগ্রামিং করার সময় তুই চিন্তা করলি পাখিগুলোর কিছু কমন বৈশিষ্ট্য আছে, সেই বৈশিষ্ট্যগুলো নিয়ে তুই Bird নামে কমন একটা ক্লাস ডিক্লেয়ার করলি। যেহেতু সব পাখিই গান গায় সেহেতু Bird ক্লাসে sing নামে একটা মেথড লেখলি। তারপর Bird ক্লাসকে extend করে কাকে, কোকিল আর টিয়া পাখির জন্য Crow, Cuckoo এবং Parrot ক্লাস বানালি।

যদিও Bird ক্লাসে sing নামে একটা মেথড আছে। তারপরেও কাক যেভাবে গান গাইবে কোকিল আর টিয়া কিন্তু সেই সুরে গান গাইবে না। আবার কোকিল যেভাবে গাইবে অন্যরা সেইভাবে গাইবে না। তাই Crow, Cuckoo এবং Parrot ক্লাসের ভিতরেও একটা করে sing মেথড ডিক্লেয়ার করা হবে যেটা কমন ক্লাসের sing মেথডের মতো। যাতে কাককে গান গাইতে বললে সে নিজের মতো গান গাইতে পারে। কোকিলকে গান গাইতে বললে সে তার মতো গান গাইতে পারে। আপাতত: এইটুক বুঝে সামনে আগাইতে থাক।

এখন ধর তোর সামনে খাঁচায় করে একটা পাখি নিয়ে আসা হইসে, এবং খাঁচাটা কালো পর্দা দিয়ে ঢাকা। তুই জোনস না খাঁচার ভিতরে কোন পাখি আছে। তারপরেও তুই sing মেথডকে কল করলে খাঁচার ভিতরে যে পাখি আছে সে তার মতো করে গান গাইবে। যদি কাক থাকে তাহলে কা কা করবে, কোকিল থাকলে কুউ কুউ করবে আর টিয়া থাকলে সে তার মতো গান গাইবে।

এই যে তুই জানস না কোন পাখি। তারপরেও একটা কমন মেথডকে কল করে যে পাখি আছে তাকে দিয়ে গান গাওয়াই নিছস। এইটাকে প্রোগ্রামিংয়ের ভাষায় Polymorphism বলে। এই Polymorphism একটা কঠিন ইংরেজি শব্দ। এই শব্দের প্রথম অংশে আছে poly আর poly মানে হচ্ছে বহু। আর morphism আরো কঠিন শব্দ যেটার মানে রূপ বা শেইপ চেইঞ্জ হওয়া। তবে সহজভাবে Polymorphism বলতে একই জিনিসের আলাদা আলাদা রূপ মনে করতে পারস। যেমন একটু আগে গান গাওয়ার কাজটারই আলাদা আলাদা রূপ ছিলো। একটাই মেথড কিন্তু ক্লাসের অবজেক্ট একই সিস্টেমে গান গাইছে।

In the code below. Bird is a generic class. it has a method called sing.

three class was exteded from Bird. Two of them has own sing method and Parrot doesn't have it's own sing method

Later we create an array named as birds where we create different birds and push in the birds array

after that we run a for loop. inside for loop we select one bird and call the sing method. while calling this sing method we do not know which bird is this and what is it's sing method look like. and this is polymorphism

if you go to console and run the folloing code. at the bottom you will see output


class Bird{
      constructor(age) {
     }
     sing(){
              console.log("pakhi gaan gai");
     }
}


class Crow extends Bird{
      constructor(age) {
              super();
     }
     sing(){
              console.log("Ka Ka Ka");
     }
}

class Cukkoo extends Bird{
      constructor(age) {
              super();
     }
     sing(){
              console.log("Ku Ku Ku");
     }
}

class Parrot extends Bird{
      constructor(age) {
              super();
     }
}


var birds = [];

var kak = new Crow();
birds.push(kak);

var kokil = new Cukkoo();
birds.push(kokil);

var tiya = new Parrot();
birds.push(tiya);

for(var i = 0; i < birds.length; i++){
	var bird = birds[i];
	bird.sing();
}

আর খেয়ে দেয়ে কোন কাজ কাম না থাকলে www.JhankarMahbub.com দেখে আয়