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

Java ও C#-তে ইন্টারফেস এবং অ্যাবস্ট্রাক্ট ক্লাসের পার্থক্য


এই পোস্টে, আমরা Java এবং C#-তে অ্যাবস্ট্রাক্ট ক্লাস এবং ইন্টারফেসের পার্থক্য বুঝব।

অ্যাবস্ট্রাক্ট ক্লাস

  • এতে ডিক্লেয়ারেশন এবং ডেফিনিশন উভয় অংশ থাকে।

  • অ্যাবস্ট্রাক্ট ক্লাস দিয়ে মাল্টিপল ইনহেরিটেন্স ইম্প্লিমেন্ট করা যায় না।

  • এতে কনস্ট্রাক্টর থাকে।

  • এতে কিছু স্ট্যাটিক মেম্বারও থাকতে পারে।

  • এতে পাবলিক, প্রাইভেট, প্রোটেক্টেড সহ একাধিক টাইপের অ্যাক্সেস মডিফায়ার থাকতে পারে।

  • অ্যাবস্ট্রাক্ট ক্লাসের পারফরম্যান্স খুব ভালো, কারণ এটি দ্রুত।

  • এটি একটি ক্লাসের কোর আইডেন্টিটি/ফাংশনালিটি ইম্প্লিমেন্ট করতে ব্যবহৃত হয়।

  • এক ক্লাস শুধু একটি অ্যাবস্ট্রাক্ট ক্লাস ব্যবহার করতে পারে।

  • যদি অনেক ইম্প্লিমেন্টেশন একই হয় এবং তাদের একটি কমন বিহেভিয়র থাকে, তবে অ্যাবস্ট্রাক্ট ক্লাস ব্যবহার করার পরামর্শ দেওয়া হয়।

  • অ্যাবস্ট্রাক্ট ক্লাসে মেথড, ফিল্ড, কনস্ট্যান্ট থাকে।

  • এটি ফুলি ইম্প্লিমেন্টেড, পার্সিয়ালি ইম্প্লিমেন্টেড বা 아예 ইম্প্লিমেন্টেড নাও হতে পারে।

ইন্টারফেস

  • এতে শুধু ডিক্লেয়ারেশন অংশ থাকে।

  • ইন্টারফেস দিয়ে মাল্টিপল ইনহেরিটেন্স অর্জন করা যায়।

  • এতে কনস্ট্রাক্টর থাকে না।

  • এতে স্ট্যাটিক মেম্বার থাকে না।

  • এতে পাবলিক অ্যাক্সেস মডিফায়ার থাকে যেহেতু ইন্টারফেসের সব কিছু পাবলিক ধরা হয়।

  • ইন্টারফেসের পারফরম্যান্স ভালো নয়।

  • এটি স্লো কারণ এটি সম্বन्धিত ক্লাসে আসল মেথড খুঁজতে সময় নেয়।

  • এটি একটি ক্লাসের পেরিফেরাল एবিলিটি ইম্প্লিমেন্ট করতে ব্যবহৃত হয়।

  • একাধিক ইন্টারফেস ব্যবহার করা যায়।

  • যদি একাধিক ইম্প্লিমেন্টেশন মেথড শেয়ার করে, তবে 'ইন্টারফেস' ব্যবহার করা যেতে পারে।

  • ইন্টারফেসে শুধু মেথড থাকতে পারে।

  • এটি ফুলি ইম্প্লিমেন্টেড হতে হবে।

  1. জাভাতে ইনহেরিটেন্স এবং কম্পোজিশনের পার্থক্য

  2. জাভাতে Thread এবং Runnable-এর পার্থক্য

  3. জাভাতে কখন অ্যাবস্ট্রাক্ট ক্লাস এবং কখন ইন্টারফেস ব্যবহার করবেন?

  4. অ্যাবস্ট্রাক্ট ক্লাস এবং ইন্টারফেসের পার্থক্য