মূল পার্থক্য – ওভারলোডিং বনাম জাভাতে ওভাররাইডিং
অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং (OOP) সফ্টওয়্যার বিকাশের একটি প্রধান দৃষ্টান্ত। এটি ক্লাস এবং অবজেক্ট ব্যবহার করে একটি প্রোগ্রাম ডিজাইন করার একটি পদ্ধতি। একটি ক্লাস একটি ব্লুপ্রিন্ট। এটি বস্তুতে কী থাকা উচিত তা বর্ণনা করে। এটি বৈশিষ্ট্য বা গুণাবলী এবং পদ্ধতিগুলিকে সংজ্ঞায়িত করে যা বস্তুর অন্তর্ভুক্ত হওয়া উচিত। অতএব, একটি বস্তু একটি শ্রেণীর একটি উদাহরণ. এই বস্তুগুলি অন্যান্য বস্তুর সাথে যোগাযোগ করে। OOP এর একটি প্রধান ধারণা হল পলিমরফিজম। এটি একটি বস্তুর একাধিক উপায়ে আচরণ করার ক্ষমতা। পলিমরফিজমকে দুটি বিভাগে শ্রেণীবদ্ধ করা হয়েছে যা ওভারলোডিং এবং ওভাররাইডিং।এই নিবন্ধটি জাভাতে এই দুটির মধ্যে পার্থক্য নিয়ে আলোচনা করে। জাভাতে ওভারলোডিং এবং ওভাররাইডিংয়ের মধ্যে মূল পার্থক্য হল যে ওভারলোডিং হল একই নামের একাধিক পদ্ধতি বিভিন্ন বাস্তবায়নের সাথে তৈরি করার ক্ষমতা এবং ওভাররাইডিং হল সুপারক্লাসে ইতিমধ্যে বিদ্যমান একটি সাবক্লাস পদ্ধতির জন্য একটি বাস্তবায়ন প্রদান করা।
জাভাতে ওভারলোডিং কি?
অভারলোডিং হল বিভিন্ন বাস্তবায়নের সাথে একই নামের একাধিক পদ্ধতি তৈরি করার ক্ষমতা। নিচের জাভা কোড পড়ুন।
চিত্র 01: জাভা প্রোগ্রাম যা বিভিন্ন সংখ্যক আর্গুমেন্ট সহ ওভারলোডিং ব্যাখ্যা করে
উপরের প্রোগ্রাম অনুসারে, ক্লাস A-তে একই নামের দুটি পদ্ধতি রয়েছে। প্রথম যোগ পদ্ধতিতে দুটি পরামিতি রয়েছে। দ্বিতীয় যোগ পদ্ধতিতে তিনটি পরামিতি রয়েছে। A টাইপ এবং কলিং sum(2, 3) এর একটি অবজেক্ট তৈরি করার সময়, এটি sum (int a, int b) দুটি প্যারামিটার সহ sum মেথডকে কল করবে এবং 5 রিটার্ন করবে। A টাইপ এবং কলিং sum(2) এর একটি অবজেক্ট তৈরি করার সময়, 3, 4), এটি তিনটি প্যারামিটার সহ অন্যান্য যোগফল পদ্ধতিকে কল করবে যা যোগফল (int a, int b, int c) এবং 9 প্রদান করে।
পদ্ধতির নাম একই কিন্তু প্যারামিটারের সংখ্যা ভিন্ন। এটি লক্ষ্য করা যায় যে একই বস্তু ভিন্নভাবে আচরণ করছে। এই ধারণাটি ওভারলোডিং হিসাবে পরিচিত। একে স্ট্যাটিক বাইন্ডিং বা কম্পাইল টাইম পলিমরফিজমও বলা হয়।
এছাড়াও বিভিন্ন ধরনের ডেটা দিয়ে ওভারলোড করা যেতে পারে। নিচের জাভা কোড পড়ুন।
চিত্র 02: জাভা প্রোগ্রাম যা বিভিন্ন সংখ্যক আর্গুমেন্ট সহ ওভারলোডিং ব্যাখ্যা করে
উপরের প্রোগ্রাম অনুসারে, ক্লাস এ একই নামের দুটি পদ্ধতি নিয়ে গঠিত। যোগফল (int a, int b) পদ্ধতিতে দুটি পূর্ণসংখ্যার মান পাওয়া যায়। যোগফল (ডবল a ডবল b) দুটি ডবল মান পায়। A টাইপের অবজেক্ট তৈরি করার সময় এবং কলিং sum(2, 3), এটি sum(int a, int b) কল করবে এবং 5 মান প্রদান করবে। sum(3.4, 5.6) কল করার সময়, এটি sum (ডবল একটি ডাবল) কল করবে b) এবং মান 9.0 ফেরত দিন। এই উদাহরণে, পদ্ধতিগুলির একই নাম রয়েছে, তবে একটি ভিন্ন ধরণের ভেরিয়েবল রয়েছে। এটিও ওভারলোডিং।
জাভাতে ওভাররাইডিং কি?
জাভাতে, ইতিমধ্যে বিদ্যমান ক্লাসগুলির সাথে সাবক্লাস তৈরি করা সম্ভব।শুরু থেকে নতুন ক্লাস তৈরি করার পরিবর্তে, ইতিমধ্যে বিদ্যমান ক্লাসের বৈশিষ্ট্য এবং পদ্ধতিগুলি ব্যবহার করা সম্ভব। বিদ্যমান শ্রেণী হল সুপারক্লাস, এবং প্রাপ্ত শ্রেণী হল সাবক্লাস। যখন সাবক্লাস একটি পদ্ধতির জন্য একটি বাস্তবায়ন প্রদান করে, যা ইতিমধ্যেই সুপারক্লাসে রয়েছে, তখন এটি ওভাররাইডিং হিসাবে পরিচিত। নিচের জাভা প্রোগ্রাম দেখুন।
চিত্র 03: ওভাররাইড করার জন্য জাভা প্রোগ্রাম
উপরের প্রোগ্রাম অনুসারে, ক্লাস এ একটি পদ্ধতি প্রদর্শন () রয়েছে। ক্লাস B শ্রেণী A থেকে প্রসারিত হচ্ছে, তাই A শ্রেণীর বৈশিষ্ট্য এবং পদ্ধতিগুলি B শ্রেণী দ্বারা অ্যাক্সেসযোগ্য।ক্লাস B এর একটি নির্দিষ্ট বাস্তবায়ন সহ পদ্ধতি প্রদর্শন() রয়েছে। A টাইপের অবজেক্ট তৈরি করার সময় এবং ডিসপ্লে পদ্ধতিতে কল করার সময়, এটি B আউটপুট দেবে। যদিও ক্লাস A-তে একটি প্রদর্শন পদ্ধতি রয়েছে, এটি ক্লাস B প্রদর্শন পদ্ধতিতে ওভাররাইড করা হয়েছে। সাবক্লাস একটি পদ্ধতি বাস্তবায়ন করছে যা সুপারক্লাসে ইতিমধ্যেই বিদ্যমান।
এই ধারণাটি এক ধরনের পলিমরফিজম এবং ওভাররাইডিং নামে পরিচিত। একে লেট বাইন্ডিং, ডাইনামিক বাইন্ডিং, রানটাইম পলিমরফিজমও বলা হয়।
জাভাতে ওভারলোডিং এবং ওভাররাইডিংয়ের মধ্যে মিল কী?
- দুটিই পলিমরফিজমের প্রকার।
- ওভারলোডিং এবং ওভাররাইডিংয়ের ক্ষেত্রে, পদ্ধতিগুলির একই নাম রয়েছে৷
জাভাতে ওভারলোডিং এবং ওভাররাইডিংয়ের মধ্যে পার্থক্য কী?
অভারলোডিং বনাম জাভাতে ওভাররাইডিং |
|
জাভাতে ওভারলোডিং হল বিভিন্ন বাস্তবায়নের সাথে একই নামের একাধিক পদ্ধতি তৈরি করার ক্ষমতা। | জাভাতে ওভাররাইডিং সুপারক্লাসে ইতিমধ্যে বিদ্যমান একটি পদ্ধতির জন্য সাবক্লাস পদ্ধতিতে একটি নির্দিষ্ট বাস্তবায়ন প্রদান করছে। |
পরামিতি | |
ওভারলোডিং-এ, পদ্ধতিগুলির একই নাম থাকে কিন্তু ভিন্ন সংখ্যক পরামিতি বা ভিন্ন ধরনের পরামিতি। | অভাররাইডিংয়ে, পদ্ধতির একই নাম এবং পরামিতি অবশ্যই একই হতে হবে। |
থিম | |
অভারলোডিং ক্লাসের মধ্যে ঘটে। | ওভাররাইডিং দুটি শ্রেণীর মধ্যে ঘটে যার একটি উত্তরাধিকার সম্পর্ক রয়েছে৷ |
প্রতিশব্দ | |
অভারলোডিংকে কম্পাইলড টাইম পলিমরফিজম বলা হয়। | অভাররাইডিংকে রান টাইম পলিমরফিজম বলা হয়। |
সারাংশ – ওভারলোডিং বনাম জাভাতে ওভাররাইডিং
পলিমরফিজম অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং এর একটি প্রধান ধারণা। এটি একটি বস্তুকে একাধিক উপায়ে আচরণ করার ক্ষমতা প্রদান করে। এটি ওভারলোডিং বা ওভাররাইডিং হতে পারে। ওভারলোডিং হল কম্পাইল-টাইম পলিমরফিজম, এবং ওভাররাইডিং হল রানটাইম পলিমরফিজম। এগুলি সফ্টওয়্যার অ্যাপ্লিকেশন বিকাশে কার্যকর। ওভাররাইডিং এবং ওভারলোডিংয়ের মধ্যে পার্থক্য হল ওভারলোডিং হল একই নামের একাধিক পদ্ধতি বিভিন্ন বাস্তবায়নের সাথে তৈরি করার ক্ষমতা এবং ওভাররাইডিং সুপারক্লাসে ইতিমধ্যে বিদ্যমান একটি পদ্ধতির জন্য সাবক্লাস পদ্ধতিতে একটি নির্দিষ্ট বাস্তবায়ন প্রদান করছে। জাভাতে ওভারলোডিং এবং ওভাররাইডিং উভয়ই বাস্তবায়ন করা সম্ভব৷
জাভাতে PDF ওভারলোডিং বনাম ওভাররাইডিং ডাউনলোড করুন
আপনি এই নিবন্ধটির PDF সংস্করণ ডাউনলোড করতে পারেন এবং উদ্ধৃতি নোট অনুসারে অফলাইন উদ্দেশ্যে এটি ব্যবহার করতে পারেন। দয়া করে এখানে PDF সংস্করণ ডাউনলোড করুন জাভাতে ওভারলোডিং এবং ওভাররাইডিংয়ের মধ্যে পার্থক্য