পলিমরফিজম:

পলিমরফিজম হলো বহুরূপতা । প্রোগ্রামিং এ পলিমরফিজম বলতে বোঝা য় একই ফাংশন কে ভিন্ন ভাবে ব্যবহার করা বা ভিন্ন আচরণ করা। ডার্টে মেথড অভাররাইডিং এর মাধ্যমে আমরা পলিমরফিজম এর প্রয়োগ দেখব । প্যারেন্ট ক্লাসে ডিক্লেয়ার করে আসা কোন মেথড কে চাইল্ড ক্লাস যদি তার মত করে ব্যাবহার করে তাহলে বলা যায় যে চাইল্ড ক্লাস প্যারেন্ট ক্লাসের মেথড অভারাইড করেছে । আমরা উদাহরণ এ চলে যাই।

class Car {
String manufacturerCompany;
String color;
int numberOfSeats;

Car(
this.manufacturerCompany,
this.color,
this.numberOfSeats,
);

void power() {
print('Car runs on oil.');
}
}

class BmwCar extends Car {
String bmwModel;

BmwCar(
String manufacturerCompany,
String color,
int numberOfSeats,
this.bmwModel,
) : super(manufacturerCompany, color, numberOfSeats);
}

class TeslaCar extends Car {
TeslaCar(
String manufacturerCompany,
String color,
int numberOfSeats,
) : super(manufacturerCompany, color, numberOfSeats);

@override
void power() {
print('Tesla car runs on electricity.');
}
}

void main() {
BmwCar bmwCar = BmwCar(
'BMW',
'Black',
4,
'Electric Luxury Sedan',
);
bmwCar.power();

TeslaCar teslaCar = TeslaCar(
'Tesla',
'Black',
4,
);

teslaCar.power();
}
 

আউটপুট:

Car runs on oil.
Tesla car runs on electricity.
 

সাধারণত Car চলে তেল এ। এই কারনে Car ক্লাসে একটি কমন বৈশিষ্ট্য যোগ করা হয়েছে power() এবং এই মেথডে আমরা দেখতেছি যে Car,runs on oil । এখন টেসলা গাড়ি কিন্তু চলে ইলেক্ট্রিসিটিতে এবং তাকে তেলে চালানো যাবে না । এই সমস্যার সমাধানের জন্যে আমাদের Car ক্লাসের power() মেথডকে নতুন একটি রূপ দিতে হবে যাতে সে টেসলা গাড়িকে ইলেক্ট্রিসিটি দিয়ে চালাতে পারে । TeslaCar ক্লাস Car ক্লাসের power() মেথডকে অভাররাইড করে এই মেথডকে নতুন একটি রূপ দিল যেখানে আমরা দেখছি Tesla car runs on[br]electricity. এটিই হল পলিমরফিসম।