কম্পিউটার

জাভা ইন্টারফেস প্রয়োগ করার সময় আমরা কি শুধুমাত্র একটি পদ্ধতি ওভাররাইড করতে পারি?


জাভাতে একটি ইন্টারফেস হল পদ্ধতির প্রোটোটাইপের একটি স্পেসিফিকেশন। যখনই আপনাকে প্রোগ্রামারকে গাইড করতে হবে বা, কোন ধরনের পদ্ধতি এবং ক্ষেত্রগুলি কীভাবে হওয়া উচিত তা উল্লেখ করে একটি চুক্তি করুন আপনি একটি ইন্টারফেস সংজ্ঞায়িত করতে পারেন৷

এই ধরনের একটি বস্তু তৈরি করতে আপনাকে এই ইন্টারফেসটি বাস্তবায়ন করতে হবে, ইন্টারফেসের সমস্ত বিমূর্ত পদ্ধতির জন্য বডি প্রদান করতে হবে এবং বাস্তবায়নকারী শ্রেণীর অবজেক্ট পেতে হবে।

উদাহরণ

interface Sample {
   void demoMethod1();
   void demoMethod2();
   void demoMethod3();
}
public class InterfaceExample implements Sample {
   public void demoMethod1() {
      System.out.println("This is demo method-1");
   }
   public void demoMethod2() {
      System.out.println("This is demo method-2");
   }
   public void demoMethod3() {
      System.out.println("This is demo method-3");
   }
   public static void main(String args[]) {
      InterfaceExample obj = new InterfaceExample();
      obj.demoMethod1();
      obj.demoMethod1();
      obj.demoMethod3();
   }
}

আউটপুট

This is demo method-1
This is demo method-2
This is demo method-3

একটি ইন্টারফেস বাস্তবায়ন করার সময় এটির সমস্ত বিমূর্ত পদ্ধতিকে ওভাররাইড করা বাধ্যতামূলক, আপনি যদি বিমূর্ত পদ্ধতিগুলির কোনোটি ওভাররাইড করা এড়িয়ে যান তবে একটি কম্পাইল টাইম ত্রুটি তৈরি হবে৷

উদাহরণ

interface Sample {
   void demoMethod1();
   void demoMethod2();
   void demoMethod3();
}
public class InterfaceExample implements Sample {
   public void demoMethod1() {
      System.out.println("This is demo method-1");
   }
   public void demoMethod2() {
      System.out.println("This is demo method-2");
   }
   public static void main(String args[]) {
      InterfaceExample obj = new InterfaceExample();
      obj.demoMethod1();
      obj.demoMethod2();
   }
}

আউটপুট

InterfaceExample.java:6: error: InterfaceExample is not abstract and does not override abstract method demoMethod3() in Sample
public class InterfaceExample implements Sample{
       ^
1 error

কিন্তু, তারপরও যদি আপনি শুধুমাত্র একটি বিমূর্ত পদ্ধতি −

ওভাররাইড করতে চান

আপনি বাকি পদ্ধতিগুলিকে অবাস্তব ছেড়ে দিতে পারেন যেমন −

উদাহরণ

interface Sample {
   void demoMethod1();
   void demoMethod2();
   void demoMethod3();
}
public class InterfaceExample implements Sample {
   public void demoMethod1() {
      System.out.println("This is demo method-1");
   }
   public void demoMethod2() {
   }
   public void demoMethod3() {
   }
   public static void main(String args[]) {
      InterfaceExample obj = new InterfaceExample();
      obj.demoMethod1();
      obj.demoMethod2();
      obj.demoMethod3();
   }
}

আউটপুট

This is demo method-1

যেহেতু int একটি ইন্টারফেসের ডিফল্ট পদ্ধতি প্রয়োগ করতে বাধ্যতামূলক নয়, আপনি অবশিষ্ট পদ্ধতিগুলি ঘোষণা করতে পারেন ডিফল্ট যেমন −

উদাহরণ

interface Sample {
   void demoMethod1();
   default void demoMethod2() {
      System.out.println("Default demo method 2");
   }
   default void demoMethod3() {
      System.out.println("Default demo method 3");
   }
}
public class InterfaceExample implements Sample {
   public void demoMethod1() {
      System.out.println("This is demo method-1");
   }
   public static void main(String args[]) {
      InterfaceExample obj = new InterfaceExample();
      obj.demoMethod1();
      obj.demoMethod2();
      obj.demoMethod3();
   }
}

আউটপুট

This is demo method-1
Default demo method 2
Default demo method 3

  1. আমরা কখন জাভাতে প্যাক() পদ্ধতি ব্যবহার করতে পারি?

  2. আমরা কি জাভাতে রান() পদ্ধতি সিঙ্ক্রোনাইজ করতে পারি?

  3. আমরা কি জাভাতে একটি start() পদ্ধতি ওভাররাইড করতে পারি?

  4. কিভাবে আমরা জাভাতে invokeLater() পদ্ধতি কল করতে পারি?