কম্পিউটার টিউটোরিয়াল

জাভাতে পলিমরফিজম

পলিমরফিজম হল একটি অবজেক্টের অনেক রূপ ধারণ করার ক্ষমতা। OOP-এ পলিমরফিজমের সবচেয়ে সাধারণ ব্যবহার হল যখন একটি প্যারেন্ট ক্লাস রেফারেন্স ব্যবহার করা হয় চাইল্ড ক্লাস অবজেক্টকে রেফার করার জন্য।

যে কোনো জাভা অবজেক্ট যেকোনো একের অধিক IS-A টেস্ট পাস করলে সেটিকে পলিমরফিক বলা হয়। জাভাতে সব জাভা অবজেক্ট পলিমরফিক কারণ যেকোনো অবজেক্ট তাদের নিজস্ব টাইপ এবং Object ক্লাসের জন্য IS-A টেস্ট পাস করে।

জেনে রাখা গুরুত্বপূর্ণ যে একটি অবজেক্ট অ্যাক্সেস করার একমাত্র উপায় হল রেফারেন্স ভেরিয়েবল। একটি রেফারেন্স ভেরিয়েবল শুধু একটি টাইপের হতে পারে। একবার ডিক্লেয়ার হলে, রেফারেন্স ভেরিয়েবলের টাইপ পরিবর্তন করা যায় না।

রেফারেন্স ভেরিয়েবল অন্য অবজেক্টে রি-অ্যাসাইন করা যেতে পারে যদি এটি final ঘোষণা না করা হয়। রেফারেন্স ভেরিয়েবলের টাইপ নির্ধারণ করবে যে এটি অবজেক্টের কোন মেথডগুলো আহ্বান করতে পারে।

একটি রেফারেন্স ভেরিয়েবল তার ডিক্লেয়ারড টাইপের যেকোনো অবজেক্ট বা তার সাবটাইপের যেকোনো অবজেক্টকে রেফার করতে পারে। একটি রেফারেন্স ভেরিয়েবল ক্লাস বা ইন্টারফেস টাইপ হিসেবে ডিক্লেয়ার করা যেতে পারে।

উদাহরণ

একটি উদাহরণ দেখি।

public interface Vegetarian {}
public class Animal {}
public class Deer extends Animal implements Vegetarian {}

এখন, Deer ক্লাসটি পলিমরফিক বলে বিবেচিত হয় কারণ এর মাল্টিপল ইনহেরিট্যান্স রয়েছে। উপরের উদাহরণের জন্য নিচের বিষয়গুলো সত্য:

  • A Deer IS-A Animal
  • A Deer IS-A Vegetarian
  • A Deer IS-A Deer
  • A Deer IS-A Object

রেফারেন্স ভেরিয়েবল ফ্যাক্টগুলো Deer অবজেক্ট রেফারেন্সে প্রয়োগ করলে, নিচের ডিক্লেয়ারেশনগুলো বৈধ:

উদাহরণ

Deer d = new Deer();
Animal a = d;
Vegetarian v = d;
Object o = d;

সभी রেফারেন্স ভেরিয়েবল d, a, v, o হিপে একই Deer অবজেক্টকে রেফার করে।

  1. জাভাতে 'this'-কে রেফারেন্স অ্যাসাইন করা সম্ভব কি?

  2. জাভাতে কনস্ট্রাক্টর কি এক্সেপশন থ্রো করতে পারে?

  3. জাভাতে রানটাইম পলিমরফিজম

  4. জাভা POJO কে JSON-এ কনভার্ট করা: Jackson এবং Gson ব্যবহার করে