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

জাভাতে ডিফল্ট মেথড ওভাররাইড করা যায় কিনা

জাভাতে একটি ইন্টারফেস (interface) ক্লাসের মতো কিন্তু, এতে শুধু অ্যাবস্ট্র্যাক্ট মেথড এবং ফাইনাল ও স্ট্যাটিক ফিল্ড থাকে।

Java 8 থেকে ইন্টারফেসে স্ট্যাটিক মেথড এবং ডিফল্ট মেথড ইন্ট্রোডিউস করা হয়েছে। অন্যান্য অ্যাবস্ট্র্যাক্ট মেথডের বিপরীত এই মেথডগুলোর একটি ডিফল্ট ইমপ্লিমেন্টেশন থাকতে পারে। যদি ইন্টারফেসে ডিফল্ট মেথড থাকে, তবে সেই ইন্টারফেস ইমপ্লিমেন্ট করা ক্লাসগুলোতে এটি ওভাররাইড করা (বডি দেওয়া) বাধ্যতামূলক নয়।

সংক্ষেপে, ইমপ্লিমেন্টিং ক্লাসের অবজেক্ট ব্যবহার করে ইন্টারফেসের ডিফল্ট মেথডগুলো অ্যাক্সেস করা যায়।

উদাহরণ

interface MyInterface { 
    public static int num = 100; 
    public default void display() { 
        System.out.println("display method of MyInterface"); 
    } 
} 

public class InterfaceExample implements MyInterface { 
    public static void main(String args[]) { 
        InterfaceExample obj = new InterfaceExample(); 
        obj.display(); 
    } 
}

আউটপুট

display method of MyInterface

ডিফল্ট মেথড ওভাররাইড করা

আপনি ইমপ্লিমেন্টিং ক্লাস থেকে ইন্টারফেসের ডিফল্ট মেথড ওভাররাইড করতে পারেন।

উদাহরণ

interface MyInterface { 
    public static int num = 100; 
    public default void display() { 
        System.out.println("display method of MyInterface"); 
    } 
} 

public class InterfaceExample implements MyInterface { 
    public void display() { 
        System.out.println("display method of class"); 
    } 
    
    public static void main(String args[]) { 
        InterfaceExample obj = new InterfaceExample(); 
        obj.display(); 
    } 
}

আউটপুট

display method of class
  1. জাভাতে ডিফল্ট মেথড ব্যবহার করে ডায়ামন্ড সমস্যা সমাধান

  2. জাভাতে JTextArea-র ভিতরে লাইন নম্বর কীভাবে প্রদর্শন করবেন?

  3. জাভাতে কোনো অ্যাবস্ট্রাক্ট মেথড ছাড়া অ্যাবস্ট্রাক্ট ক্লাস ডিফাইন করা যায় কিনা?

  4. জাভা ৮-এ ইন্টারফেসে ডিফল্ট মেথড