ইন্টারফেস প্রোপার্টি, মেথড এবং ইভেন্ট সংজ্ঞায়িত করে, যা ইন্টারফেসের সদস্য। ইন্টারফেস শুধু সদস্যদের ঘোষণা করে। তাদের সংজ্ঞায়িত করার দায়িত্ব ডেরাইভড ক্লাসের।
অ্যাবস্ট্রাক্ট ক্লাসও কিছুটা একই উদ্দেশ্য phục Farooq হয়, তবে এটি মূলত তখন ব্যবহৃত হয় যখন বেস ক্লাসে শুধু কয়েকটি মেথড ঘোষণা করা থাকে এবং ডেরাইভড ক্লাস ফাংশনালিটি ইমপ্লিমেন্ট করে।
প্রধান পার্থক্যগুলো নিচে দেওয়া হলো:
- একটি ক্লাস একাধিক ইন্টারফেস ইনহেরিট করতে পারে, কিন্তু শুধু একটি অ্যাবস্ট্রাক্ট ক্লাস ইনহেরিট করতে পারে।
- অ্যাবস্ট্রাক্ট ক্লাস দিয়ে মাল্টিপল ইনহেরিটেন্স সম্ভব নয়, কিন্তু ইন্টারফেস দিয়ে সম্ভব।
- ইন্টারফেসে ফিল্ড সংজ্ঞায়িত করা যায় না, কিন্তু অ্যাবস্ট্রাক্ট ক্লাসে যায়।
- ইন্টারফেসে public, private, protected, internal ইত্যাদি অ্যাক্সেস মডিফায়ার থাকে না; সব কিছু ডিফল্টভাবে public।