কম্পিউটার

C# প্রোগ্রামে অ্যাবস্ট্রাক্ট ক্লাস এবং ইন্টারফেসের মধ্যে পার্থক্য


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

একটি বিমূর্ত শ্রেণীতে, আমরা কার্যকারিতা তৈরি করতে পারি এবং এটি উদ্ভূত শ্রেণী দ্বারা প্রয়োগ করা প্রয়োজন। ইন্টারফেস আমাদের কার্যকারিতা বা ফাংশন সংজ্ঞায়িত করতে দেয় কিন্তু তা বাস্তবায়ন করতে পারে না। প্রাপ্ত ক্লাস ইন্টারফেস প্রসারিত করে এবং সেই ফাংশনগুলিকে বাস্তবায়ন করে।

অ্যাবস্ট্রাক্ট ক্লাস এবং ইন্টারফেসের মধ্যে গুরুত্বপূর্ণ পার্থক্যগুলি নীচে দেওয়া হল৷

Sr. না। কী বিমূর্ত ক্লাস ইন্টারফেস
1 সংজ্ঞা মানক সংজ্ঞার পরিপ্রেক্ষিতে একটি বিমূর্ত শ্রেণী হল, ধারণাগতভাবে, এমন একটি শ্রেণী যা ইনস্ট্যান্ট করা যায় না এবং সাধারণত এমন একটি শ্রেণী হিসাবে প্রয়োগ করা হয় যার এক বা একাধিক বিশুদ্ধ ভার্চুয়াল (বিমূর্ত) ফাংশন রয়েছে। অন্যদিকে একটি ইন্টারফেস হল একটি বর্ণনা যা সদস্য ফাংশনগুলিকে একটি ক্লাস করতে হবে, যা এই ইন্টারফেসের উত্তরাধিকারসূত্রে প্রাপ্ত, বাস্তবায়ন করে। অন্য কথায়, একটি ইন্টারফেস ক্লাসের আচরণ বর্ণনা করে।
2 বাস্তবায়ন অন্যান্য সাধারণ ক্লাস ডিজাইনের মতো C# অ্যাবস্ট্রাক্ট ক্লাসেও এর ঘোষণার সাথে নিজস্ব বাস্তবায়ন রয়েছে। অন্যদিকে একটি ইন্টারফেসে শুধুমাত্র একটি স্বাক্ষর থাকতে পারে, বাস্তবায়ন নয়। যদিও এটি বাস্তবায়নকারী শ্রেণী দ্বারা প্রদান করা হচ্ছে।
3 উত্তরাধিকার C# এর স্পেসিফিকেশন অনুসারে একটি ক্লাস শুধুমাত্র একটি অন্য শ্রেণীকে প্রসারিত করতে পারে তাই বিমূর্ত শ্রেণী দ্বারা একাধিক উত্তরাধিকার অর্জন করা যায় না। অন্যদিকে ইন্টারফেসের ক্ষেত্রে একটি ক্লাস একাধিক ইন্টারফেস প্রয়োগ করতে পারে এবং তাই ইন্টারফেসের মাধ্যমে একাধিক উত্তরাধিকার অর্জন করা হয়।
4 কনস্ট্রাক্টর ইন্সট্যান্টিয়েশন অ্যাবস্ট্রাক্ট ক্লাসের জন্য C#-এর অন্যান্য ক্লাসের মতো কনস্ট্রাক্টরও রয়েছে যা তার নন-স্ট্যাটিক পদ্ধতিগুলি অ্যাক্সেস করতে অ্যাবস্ট্রাক্ট ক্লাসের একটি উদাহরণ প্রদান করে। অন্যদিকে ইন্টারফেসের কনস্ট্রাক্টর নেই তাই আমরা সরাসরি একটি ইন্টারফেস ইনস্ট্যান্টিয়েট করতে পারি না যদিও এর পদ্ধতিটি ক্লাসের উদাহরণ তৈরি করে অ্যাক্সেস করা যেতে পারে যা এটি বাস্তবায়ন করে।
5 সংশোধনকারী যেহেতু বিমূর্ত ক্লাসটি C# এর অন্যান্য সাধারণ ক্লাসের মতো তাই এতে বিভিন্ন ধরণের অ্যাক্সেস মডিফায়ার যেমন পাবলিক, প্রাইভেট, সুরক্ষিত ইত্যাদি থাকতে পারে। অন্যদিকে যেমন ইন্টারফেসকে অন্য শ্রেণীর দ্বারা প্রয়োগের পদ্ধতিগুলি প্রদান করার জন্য প্রয়োগ করা দরকার তাই শুধুমাত্র পাবলিক অ্যাক্সেস মডিফায়ার ধারণ করতে পারে৷
6 পারফরম্যান্স যেহেতু বিমূর্ত শ্রেণীর এর পদ্ধতি রয়েছে তেমনি তাদের বাস্তবায়নের জন্যও এর বিমূর্ত পদ্ধতি বাস্তবায়নের জন্য এটির বাস্তবায়নকারী শ্রেণীর জন্য রেফারেন্স রয়েছে তাই ইন্টারফেসের তুলনায় কর্মক্ষমতা তুলনামূলকভাবে দ্রুততর। অন্যদিকে ইন্টারফেসের কার্যক্ষমতা ধীর কারণ সংশ্লিষ্ট ক্লাসে প্রকৃত পদ্ধতি অনুসন্ধান করতে সময় লাগে।

  1. জাভা প্রোগ্রামে সুপার() এবং এই() এর মধ্যে পার্থক্য

  2. জাভাতে ইন্টারফেস এবং ক্লাসের মধ্যে পার্থক্য

  3. জাভাতে বিমূর্ত শ্রেণী এবং ইন্টারফেসের মধ্যে পার্থক্য

  4. বিমূর্ত শ্রেণী এবং ইন্টারফেসের মধ্যে পার্থক্য