জাভাতে একটি ইন্টারফেস অন্য ইন্টারফেস ইমপ্লিমেন্ট করতে পারে না।
- জাভাতে একটি ইন্টারফেস অনুতolgens একটি স্পেশাল ধরনের ক্লাস। ক্লাসের মত ইন্টারফেসে মেথড এবং ভেরিয়েবল থাকে। ক্লাসের বিপরীতে, ইন্টারফেসগুলো সবসময় কমপ্লিটলি অ্যাবস্ট্রাক্ট।
- একটি ইন্টারফেস ঠিক ক্লাসের মত ডিফাইন করা হয় শুধু interface কিওয়ার্ড ক্লাসের জায়গায় বসে, ইন্টারফেসে ডিক্লেয়ার করা ভেরিয়েবলগুলো static এবং final এবং ইন্টারফেসে ডিফাইন করা মেথডগুলো public abstract মেথড।
- একটি ইন্টারফেস যেকোনো সংখ্যক ইন্টারফেস extend করতে পারে কিন্তু একটি ইন্টারফেস implement করতে পারে না অন্য ইন্টারফেস, কারণ যদি কোনো ইন্টারফেস ইমপ্লিমেন্ট করা হয় তবে এর মেথডগুলো ডিফাইন করা আবশ্যক এবং ইন্টারফেসে কোনো মেথডের ডেফিনিশন থাকে না।
- যদি আমরা একটি ইন্টারফেসকে অন্য ইন্টারফেস দিয়ে ইমপ্লিমেন্ট করার চেষ্টা করি, জাভাতে কম্পাইল-টাইম এরর হবে।
উদাহরণ
interface MainInterface {
void mainMethod();
}
interface SubInterface extends MainInterface { // যদি implements কিওয়ার্ড বসাই extends-এর জায়গায়,
// কম্পাইলার এরর থ্রো করবে।
void subMethod();
}
class MainClass implements MainInterface {
public void mainMethod() {
System.out.println("Main Interface Method");
}
public void subMethod() {
System.out.println("Sub Interface Method");
}
}
public class Test {
public static void main(String args[]) {
MainClass main = new MainClass();
main.mainMethod();
main.subMethod();
}
}
আউটপুট
Main Interface Method Sub Interface Method