ওভাররাইডিং এবং ওভারলোডিংয়ের মধ্যে পার্থক্য

ওভাররাইডিং এবং ওভারলোডিংয়ের মধ্যে পার্থক্য
ওভাররাইডিং এবং ওভারলোডিংয়ের মধ্যে পার্থক্য

ভিডিও: ওভাররাইডিং এবং ওভারলোডিংয়ের মধ্যে পার্থক্য

ভিডিও: ওভাররাইডিং এবং ওভারলোডিংয়ের মধ্যে পার্থক্য
ভিডিও: Immediate inference. অমাধ্যম ও মাধ্যম অনুমান কাকে বলে? অমাধ্যম ও মাধ্যম অনুমানের পার্থক্য 2024, নভেম্বর
Anonim

ওভাররাইডিং বনাম ওভারলোডিং

মেথড ওভাররাইডিং এবং মেথড ওভারলোডিং হল দুটি ধারণা/কৌশল/বৈশিষ্ট্য যা কিছু প্রোগ্রামিং ভাষায় পাওয়া যায়। উভয় ধারণাই প্রোগ্রামারকে একই নামের পদ্ধতির জন্য বিভিন্ন বাস্তবায়ন প্রদানের অনুমতি দেয়। মেথড ওভাররাইডিং প্রোগ্রামারকে একটি সাব ক্লাসের মধ্যে তার সুপার ক্লাসের মধ্যে ইতিমধ্যে সংজ্ঞায়িত একটি পদ্ধতির বিকল্প বাস্তবায়ন প্রদান করতে দেয়। মেথড ওভারলোডিং প্রোগ্রামারকে একই নামের (একই ক্লাসের মধ্যে) একাধিক পদ্ধতিতে বিভিন্ন বাস্তবায়ন প্রদান করতে দেয়।

ওভাররাইডিং কি?

উপরে উল্লিখিত হিসাবে, একটি ক্লাস অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং ল্যাঙ্গুয়েজগুলিতে একটি সুপার ক্লাস বা একটি প্যারেন্ট ক্লাস প্রসারিত করতে পারে।একটি চাইল্ড ক্লাসের নিজস্ব পদ্ধতি থাকতে পারে বা ঐচ্ছিকভাবে এর প্যারেন্ট ক্লাসে (বা এর গ্র্যান্ড প্যারেন্ট ক্লাসগুলির মধ্যে একটি) ইতিমধ্যে সংজ্ঞায়িত পদ্ধতিগুলির নিজস্ব বাস্তবায়ন থাকতে পারে। তাই যখন পরেরটি ঘটে তখন একে মেথড ওভাররাইডিং বলা হয়। অন্য কথায়, যদি শিশু শ্রেণিটি তার অভিভাবক শ্রেণির একটিতে ইতিমধ্যে সংজ্ঞায়িত একটি পদ্ধতি হিসাবে একই স্বাক্ষর এবং রিটার্ন টাইপ সহ একটি পদ্ধতির বাস্তবায়ন প্রদান করে, তবে সেই পদ্ধতিটিকে শিশু শ্রেণির বাস্তবায়নের দ্বারা ওভাররাইড (প্রতিস্থাপিত) বলে বলা হয়. সুতরাং, যদি একটি ক্লাসে একটি ওভাররাইডেড পদ্ধতি থাকে, তাহলে রানটাইম সিস্টেমকে সিদ্ধান্ত নিতে হবে কোন পদ্ধতি বাস্তবায়ন ব্যবহার করা হবে। এই সমস্যাটির সমাধান করা হয় সঠিক ধরনের বস্তু যা এটিকে আহ্বান করতে ব্যবহৃত হয় তা দেখে। যদি প্যারেন্ট ক্লাসের একটি অবজেক্ট ওভাররাইডেড পদ্ধতি চালু করতে ব্যবহার করা হয়, তাহলে প্যারেন্ট ক্লাসে বাস্তবায়ন ব্যবহার করা হয়। একইভাবে, যদি এটি শিশু শ্রেণীর একটি বস্তু হয় যা ব্যবহৃত হয়, তাহলে শিশু শ্রেণীর বাস্তবায়ন ব্যবহার করা হয়। জাভা, আইফেল, সি++ এবং পাইথনের মতো আধুনিক প্রোগ্রামিং ভাষা পদ্ধতি ওভাররাইড করার অনুমতি দেয়।

ওভারলোডিং কি?

মেথড ওভারলোডিং হল কিছু প্রোগ্রামিং ল্যাঙ্গুয়েজ দ্বারা প্রদত্ত একটি বৈশিষ্ট্য যা একই নামে একাধিক পদ্ধতি তৈরি করতে পারে, কিন্তু বিভিন্ন ধরনের ইনপুট এবং আউটপুট সহ। জাভা, C, C++ এবং VB. NET-এর মতো আধুনিক প্রোগ্রামিং ভাষায় এই বৈশিষ্ট্যটি উপলব্ধ। আপনি একই নামের অন্য একটি পদ্ধতি তৈরি করে কিন্তু একটি ভিন্ন পদ্ধতি স্বাক্ষর বা একটি ভিন্ন রিটার্ন টাইপ (বা উভয়ই) দিয়ে একটি পদ্ধতি ওভারলোড করতে পারেন। উদাহরণস্বরূপ, যদি আপনার একই ক্লাসের মধ্যে মেথড1(টাইপ1 টি1) এবং মেথড1(টাইপ2 টি2) থাকে, তাহলে সেগুলি ওভারলোড হয়। তারপর সিস্টেমকে সিদ্ধান্ত নিতে হবে যে এটিকে বলা হলে কোনটি কার্যকর করা হবে। এই পার্থক্যটি পদ্ধতিতে পাস করা প্যারামিটার(গুলি) এর ধরন দেখে তৈরি করা হয়। যদি আর্গুমেন্টটি টাইপ 1 এর হয়, তাহলে প্রথম বাস্তবায়নকে বলা হয়, আর যদি এটি টাইপ2 হয়, তাহলে দ্বিতীয় বাস্তবায়নকে বলা হয়।

ওভাররাইডিং এবং ওভারলোডিংয়ের মধ্যে পার্থক্য কী?

যদিও, মেথড ওভাররাইডিং এবং মেথড ওভারলোডিং বিভিন্ন ইমপ্লিমেন্টেশন সহ একটি পদ্ধতি প্রদান করতে ব্যবহৃত হয়, এই দুটি ধারণা/টেকনিকের মধ্যে মূল পার্থক্য রয়েছে।প্রথমত, মেথড ওভাররাইডিং এর বিষয়গুলো সবসময় বিভিন্ন ক্লাসের মধ্যে থাকে, যখন মেথড ওভারলোডিং এর বিষয়গুলো একই ক্লাসের মধ্যে থাকে। তার মানে ওভাররাইডিং শুধুমাত্র অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং ল্যাঙ্গুয়েজগুলিতেই সম্ভব যা উত্তরাধিকারের অনুমতি দেয়, যখন ওভারলোডিং একটি নন অবজেক্ট-ওরিয়েন্টেড ল্যাঙ্গুয়েজেও পাওয়া যায়। অন্য কথায়, আপনি সুপার ক্লাসে একটি পদ্ধতিকে ওভাররাইড করেন কিন্তু আপনি আপনার নিজের ক্লাসের মধ্যে একটি পদ্ধতি ওভারলোড করেন।

আরেকটি পার্থক্য হল যে ওভাররাইড করা পদ্ধতিতে একই পদ্ধতির নাম, পদ্ধতি স্বাক্ষর এবং রিটার্ন টাইপ থাকে, তবে ওভারলোড করা পদ্ধতিগুলি অবশ্যই স্বাক্ষর বা রিটার্ন টাইপের মধ্যে আলাদা হতে হবে (নামটি একই হওয়া উচিত)। দুটি ওভাররাইড করা পদ্ধতির মধ্যে পার্থক্য করার জন্য, সঠিক ধরনের অবজেক্ট যা ব্যবহার করা পদ্ধতি আইডি চালু করতে ব্যবহৃত হয়, যেখানে দুটি ওভারলোড করা পদ্ধতির মধ্যে পার্থক্য করার জন্য প্যারামিটারের ধরনগুলি ব্যবহার করা হয়। আরেকটি মূল পার্থক্য হল ওভারলোডিং কম্পাইলের সময়ে সমাধান করা হয়, যখন ওভাররাইডিং রানটাইমে সমাধান করা হয়।

প্রস্তাবিত: