পলিমরফিজম হল একটি বস্তুর বিভিন্ন রূপ ধারণের ক্ষমতা। OOP-তে পলিমরফিজমের সবচেয়ে সাধারণ ব্যবহার ঘটে যখন একটি শিশু শ্রেণীর বস্তুর উল্লেখ করার জন্য একটি অভিভাবক শ্রেণীর রেফারেন্স ব্যবহার করা হয়।
যে কোনো জাভা অবজেক্ট যেটি একাধিক IS-A পরীক্ষায় উত্তীর্ণ হতে পারে তাকে পলিমরফিক বলে মনে করা হয়। জাভাতে, সমস্ত জাভা অবজেক্ট পলিমরফিক কারণ যেকোন অবজেক্ট তাদের নিজস্ব টাইপ এবং ক্লাস অবজেক্টের জন্য IS-A পরীক্ষায় উত্তীর্ণ হবে।
এটা জানা গুরুত্বপূর্ণ যে একটি বস্তু অ্যাক্সেস করার একমাত্র সম্ভাব্য উপায় একটি রেফারেন্স ভেরিয়েবলের মাধ্যমে। একটি রেফারেন্স ভেরিয়েবল শুধুমাত্র এক ধরনের হতে পারে। একবার ঘোষণা করা হলে, রেফারেন্স ভেরিয়েবলের ধরন পরিবর্তন করা যাবে না।
রেফারেন্স ভেরিয়েবলটি অন্য বস্তুতে পুনরায় বরাদ্দ করা যেতে পারে তবে এটি চূড়ান্ত ঘোষণা না করা হয়। রেফারেন্স ভেরিয়েবলের ধরন নির্ধারণ করবে যে পদ্ধতিগুলি এটি অবজেক্টে ব্যবহার করতে পারে।
একটি রেফারেন্স ভেরিয়েবল তার ঘোষিত ধরণের যেকোন অবজেক্ট বা তার ঘোষিত ধরণের যেকোন সাবটাইপকে উল্লেখ করতে পারে। একটি রেফারেন্স ভেরিয়েবলকে ক্লাস বা ইন্টারফেস টাইপ হিসাবে ঘোষণা করা যেতে পারে।
উদাহরণ
আসুন একটি উদাহরণ দেখি।
public interface Vegetarian{} public class Animal{} public class Deer extends Animal implements Vegetarian{}
এখন, হরিণ শ্রেণীকে বহুরূপী হিসাবে বিবেচনা করা হয় কারণ এর একাধিক উত্তরাধিকার রয়েছে। উপরের উদাহরণগুলির জন্য নিম্নলিখিতগুলি সত্য -
৷- একটি হরিণ আইএস-একটি প্রাণী
- একটি হরিণ IS-একটি নিরামিষ
- একটি হরিণ IS-একটি হরিণ
- একটি হরিণ IS-একটি বস্তু
যখন আমরা একটি হরিণ বস্তুর রেফারেন্সে রেফারেন্স পরিবর্তনশীল তথ্য প্রয়োগ করি, তখন নিম্নলিখিত ঘোষণাগুলি আইনী হয় -
উদাহরণ
Deer d = new Deer(); Animal a = d; Vegetarian v = d; Object o = d;
সমস্ত রেফারেন্স ভেরিয়েবল d, a, v, o স্তূপে একই হরিণ বস্তুকে নির্দেশ করে।