জাভা ৮ থেকে ইন্টারফেসে ডিফল্ট এবং স্ট্যাটিক মেথড যোগ করা যায়।
| ক্র. নং | বিষয় | স্ট্যাটিক মেথড | ডিফল্ট মেথড |
|---|---|---|---|
| ১ | প্রকৃতি | ইন্টারফেসের সাথে যুক্ত, ইমপ্লিমেন্টিং ক্লাসে ওভাররাইড করা যায় না | ডিফল্ট কীওয়ার্ডসহ, ইমপ্লিমেন্টিং ক্লাসে ওভাররাইড করা যায় |
| ২ | কলিং | শুধু ইন্টারফেস নাম দিয়ে (InterfaceName.method()) | ইন্টারফেস এবং ক্লাস উভয় দিয়ে কল করা যায় |
| ৩ | নেমিং কনফ্লিক্ট | ইন্টারফেস এবং ক্লাসে একই নাম থাকতে পারে (ওভাররাইড নয়) | ক্লাসে ওভাররাইড করতে পারে |
| ৪ | ব্যবহার ক্ষেত্র | ইউটিলিটি মেথড | সামान्य ফাংশন্যালিটি প্রদান |
উদাহরণ
interface MyInterface {
default void show() { System.out.println("Default method"); }
static void display() { System.out.println("Static method"); }
}
class MyClass implements MyInterface {
@Override
public void show() { System.out.println("Overridden default"); }
}
public class Main {
public static void main(String[] args) {
MyInterface.display(); // Static call on interface
MyClass obj = new MyClass();
obj.show(); // Default method call on class (overridden)
}
}