এই পোস্টে আমরা জাভাতে একটি ক্লাস (Class) এবং একটি ইন্টারফেস (Interface) এর পার্থক্য বুঝব।
ক্লাস (Class)
- এটি একটি অবজেক্টে থাকা উচিত অ্যাট্রিবিউট এবং বিহেভিয়ার সম্পর্কে বলে।
- এতে অ্যাবস্ট্র্যাক্ট মেথড ও নরমাল মেথড দুটোই থাকতে পারে।
- তৈরির কীওয়ার্ড: 'class'।
- এটি ইনস্ট্যানশিয়েট (instantiate) করা যায়।
- এটি মাল্টিপল ইনহেরিটেন্স সাপোর্ট করে না।
- এটি একটি ক্লাস ইনহেরিট করতে পারে।
- ক্লাসের প্যারেন্টের নাম (যদি থাকে) 'extends' কীওয়ার্ড দ্বারা সত্তা করা হয়।
- এক ক্লাসের মেম্বারগুলো পাবলিক, প্রাইভেট বা প্রোটেক্টেড হতে পারে।
- ক্লাস বডি '{' এবং '}' দিয়ে ঘেরা থাকে।
- ভেরিয়েবলগুলো স্ট্যাটিক, ফাইনাল বা নরমাল হতে পারে।
ইন্টারফেস (Interface)
- এতে ক্লাস দ্বারা ইমপ্লিমেন্ট হওয়া বিহেভিয়ার থাকে।
- তৈরির কীওয়ার্ড: 'interface'।
- এটি ইনস্ট্যানশিয়েট করা যায় না।
- এটি মাল্টিপল ইনহেরিটেন্স সাপোর্ট করে।
- এতে শুধু অ্যাবস্ট্র্যাক্ট মেথড থাকে।
- ইন্টারফেস ইনহেরিট করতে 'extends' ব্যবহার করে।
- সभी ভেরিয়েবল স্ট্যাটিক এবং ফাইনাল।
- এটি কোনো ক্লাস ইনহেরিট করতে পারে না।
- এটি ক্লাসের জন্য একটি ব্লুপ্রিন্ট (blueprint)।
- এটি বলে ক্লাসকে কী করতে হবে, কিভাবে করবে না।
- ইন্টারফেসের মেম্বারগুলো ডিফল্টভাবে পাবলিক।