মূল পার্থক্য – ওভাররাইডিং বনাম সি এ ওভারলোডিং
C এ ওভাররাইডিং এবং ওভারলোডিংয়ের মধ্যে মূল পার্থক্য হল যে ওভাররাইড মেথড কল এর সংজ্ঞার সাথে বাইন্ডিং রানটাইমে ঘটে যখন এর সংজ্ঞার সাথে ওভারলোড মেথড কলের বাঁধাই কম্পাইল টাইমে ঘটে।
C মাইক্রোসফ্ট দ্বারা তৈরি একটি সাধারণ-উদ্দেশ্য প্রোগ্রামিং ভাষা। C এর প্রধান সুবিধা হল এটি অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং (OOP) সমর্থন করে। OOP এর একটি স্তম্ভ হল Polymorphism. এটি একটি বস্তুকে একাধিক আচরণ করতে দেয়। পলিমরফিজমের দুটি প্রকার রয়েছে যা ওভাররাইডিং এবং ওভারলোডিং নামে পরিচিত। এই নিবন্ধটি C এ পদ্ধতি ওভাররাইডিং এবং ওভারলোডিংয়ের মধ্যে পার্থক্য নিয়ে আলোচনা করে।
C এ ওভাররাইডিং কি?
OOP-তে আরেকটি গুরুত্বপূর্ণ ধারণা আছে উত্তরাধিকার। এটি ইতিমধ্যে বিদ্যমান ক্লাসের বৈশিষ্ট্য এবং পদ্ধতি ব্যবহার করা। এটি কোড পুনর্ব্যবহারযোগ্যতা উন্নত করে। ইতিমধ্যে বিদ্যমান শ্রেণী হল বেস ক্লাস, এবং নতুন শ্রেণীটি প্রাপ্ত বর্গ হিসাবে পরিচিত। পলিমরফিজমকে অগ্রাহ্য করার ক্ষেত্রে, একটি বেস ক্লাস এবং একটি উদ্ভূত শ্রেণী থাকা উচিত। সংজ্ঞাতে ওভাররাইড করা পদ্ধতি কলের বাঁধাই রানটাইমে ঘটে। একটি উদাহরণ নিম্নরূপ।
চিত্র 01: ওভাররাইডিং সহ C প্রোগ্রাম
উপরের প্রোগ্রাম অনুসারে, ক্লাস শেপ হল বেস ক্লাস, এবং এতে প্রদর্শন পদ্ধতি রয়েছে। বর্গ আয়তক্ষেত্র এবং ত্রিভুজ প্রাপ্ত শ্রেণী। এই প্রাপ্ত ক্লাসগুলির নিজস্ব বাস্তবায়নের সাথে একই পদ্ধতির প্রদর্শন রয়েছে৷
প্রথম, রেফারেন্স ভেরিয়েবল obj তৈরি করা হয়। এটি আকৃতি বস্তুর দিকে নির্দেশ করে। সুতরাং, শেপ ক্লাসের প্রদর্শন পদ্ধতিটি কার্যকর হবে। তারপর, রেফারেন্স ভেরিয়েবলটি আয়তক্ষেত্র বস্তুর দিকে নির্দেশ করে। সুতরাং, আয়তক্ষেত্র শ্রেণীর প্রদর্শন পদ্ধতি কার্যকর হবে। অবশেষে, রেফারেন্স ভেরিয়েবল ত্রিভুজ বস্তুর দিকে নির্দেশ করে। সুতরাং, ত্রিভুজ শ্রেণীর প্রদর্শন পদ্ধতি কার্যকর হবে। বেস ক্লাস ডিসপ্লে পদ্ধতি প্রাপ্ত ক্লাসের প্রদর্শন পদ্ধতি দ্বারা ওভাররাইড করা হয়।
রানটাইমে চালানোর পদ্ধতি নির্ধারণ করা হয়। শেপ ক্লাসটি 'ভার্চুয়াল' কীওয়ার্ড দিয়ে লেখা হয়। আয়তক্ষেত্র এবং ত্রিভুজ ক্লাসগুলি 'ওভাররাইড' কীওয়ার্ড দিয়ে লেখা হয়। যদি এই কীওয়ার্ড ব্যবহার না করা হয়, আউটপুট সবার জন্য শেপ ক্লাসের প্রদর্শন পদ্ধতির বিষয়বস্তু মুদ্রণ করবে।
C এ ওভারলোডিং কি?
ওভারলোডিং-এ, একাধিক পদ্ধতির নাম একই কিন্তু ভিন্ন প্যারামিটার সহ। পরামিতি বিভিন্ন ধরনের হতে পারে। পদ্ধতিতে বিভিন্ন সংখ্যক পরামিতিও থাকতে পারে।মেথড ওভারলোডিং একই ক্লাসে ঘটে। সংজ্ঞায় ওভারলোড করা পদ্ধতির বাঁধাই কম্পাইলের সময়ে ঘটে। নিচের C প্রোগ্রামটি পড়ুন।
চিত্র 02: ওভারলোডিং সহ C প্রোগ্রাম
উপরের প্রোগ্রাম অনুসারে, ক্লাস A-এর একই নামের দুটি পদ্ধতি রয়েছে যাকে যোগ বলে। তাদের বিভিন্ন ধরণের পরামিতি রয়েছে। মূল প্রোগ্রামে, A এর একটি অবজেক্ট তৈরি করা হয়। যোগফল (2, 3) পূর্ণসংখ্যার সাথে যোগফল পদ্ধতিকে আহ্বান করবে। যোগফল (5.1, 7.94) দ্বিগুণ মান সহ যোগফল পদ্ধতিকে আহ্বান করবে। উভয় পদ্ধতির একই নাম এবং একই সংখ্যক পরামিতি রয়েছে। কিন্তু প্যারামিটারের ধরন ভিন্ন। প্রয়োজনীয় পদ্ধতি সেই অনুযায়ী বলা হয়। ওভারলোডিংও ঘটতে পারে যদি পদ্ধতির নাম এবং প্যারামিটারের ধরন একই হয় তবে প্যারামিটারের সংখ্যা আলাদা।
C এ ওভাররাইডিং এবং ওভারলোডিংয়ের মধ্যে মিল কী?
C এ ওভাররাইডিং এবং ওভারলোডিং উভয়ই পলিমরফিজমের প্রকার।
C এ ওভাররাইডিং এবং ওভারলোডিংয়ের মধ্যে পার্থক্য কী?
C ওভাররাইডিং বনাম ওভারলোডিং |
|
C এ ওভাররাইডিং হল বেস ক্লাসে ইতিমধ্যে বিদ্যমান একটি পদ্ধতির জন্য একটি প্রাপ্ত ক্লাস পদ্ধতিতে একটি নির্দিষ্ট বাস্তবায়ন প্রদান করা। | C তে ওভারলোডিং হল একই নামের একাধিক পদ্ধতি বিভিন্ন বাস্তবায়নের সাথে তৈরি করা। |
পরামিতি | |
C ওভাররাইডিং-এ, পদ্ধতিগুলির একই নাম, একই প্যারামিটারের ধরন এবং একই সংখ্যক পরামিতি রয়েছে। | C ওভারলোডিং-এ, পদ্ধতির নাম একই কিন্তু ভিন্ন সংখ্যক প্যারামিটার বা ভিন্ন ধরনের প্যারামিটার। |
ঘটনা | |
C এ, ওভাররাইডিং বেস ক্লাস এবং প্রাপ্ত ক্লাসের মধ্যে ঘটে। | C এ, একই ক্লাসের মধ্যে ওভারলোডিং ঘটে। |
বাঁধাই সময় | |
অভাররাইডেড মেথড কল এর সংজ্ঞায় বাঁধাই রানটাইমে ঘটে। | অভারলোড মেথড কল এর সংজ্ঞার সাথে বাইন্ডিং কম্পাইলের সময় ঘটে। |
প্রতিশব্দ | |
অভাররাইডিংকে রানটাইম পলিমরফিজম, ডাইনামিক পলিমরফিজম বা লেট বাইন্ডিং বলা হয়৷ | ওভারলোডিংকে কম্পাইল টাইম পলিমরফিজম, স্ট্যাটিক পলিমরফিজম বা প্রারম্ভিক বাঁধাই বলা হয়। |
সারাংশ – ওভাররাইডিং বনাম ওভারলোডিং সি
ওভাররাইডিং এবং ওভারলোডিং দুই ধরনের পলিমরফিজম। C এ ওভাররাইডিং এবং ওভারলোডিং এর মধ্যে পার্থক্য হল যে ওভাররাইড করা মেথড কল এর সংজ্ঞার সাথে বাইন্ডিং রানটাইমে ঘটে যখন এর সংজ্ঞার সাথে ওভারলোড করা মেথড কলের বাইন্ডিং কম্পাইল টাইমে ঘটে।