Polymorphism

Polymorphism

•       এটি একটি অবজেক্টের বিভিন্ন রূপ ধারণ করার ক্ষমতা।

•       Benefit: কোডের Flexibility, Extensibility এবং সংক্ষিপ্ততা নিশ্চিত করে।

•       এটি একটি সিঙ্গেল ইন্টারফেসকে বিভিন্ন ফর্মে রিপ্রেজেন্ট করার সুযোগ দেয়।

Note: Poly অর্থ অনেক আর Morph অর্থ রূপ। একই জিনিসকে স্থানভেদে বিভিন্ন রূপে ব্যবহার করার পদ্ধতিই মূলত Polymorphism।

Polymorphism এর প্রকারভেদ:

1. Compile-time Polymorphism

✓ একে Static Binding বা Early Binding বলা হয়।

✓ এটি Function/Method Overloading-এর মাধ্যমে অর্জিত হয়।

✓ এক্ষেত্রে ফাংশনের নাম একই থাকে, কিন্তু parameters ভিন্ন হয়।

2. Runtime Polymorphism

✓ একে Dynamic Binding বা Late Binding বলা হয়।

✓ এটি Function/Method Overriding-এর মাধ্যমে অর্জিত হয়।

✓ এটি মূলত ইনহেরিটেন্সের ক্ষেত্রে দেখা যায় যেখানে চাইল্ড ক্লাস প্যারেন্ট ক্লাসের মেথডকে নতুন রূপ দেয়।

Runtime এবং Compile time polymorphism এর মধ্যকার পার্থক্য

কম্পাইল টাইম পলিমরফিজম

রান টাইম পলিমরফিজম

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