Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Java

जावा इंटरफ़ेस को लागू करते समय क्या हम केवल एक विधि को ओवरराइड कर सकते हैं?

जावा में एक इंटरफ़ेस विधि प्रोटोटाइप का एक विनिर्देश है। जब भी आपको प्रोग्रामर का मार्गदर्शन करने की आवश्यकता हो या, यह निर्दिष्ट करते हुए अनुबंध करें कि किसी प्रकार के तरीके और क्षेत्र कैसे होने चाहिए, आप एक इंटरफ़ेस को परिभाषित कर सकते हैं।

इस प्रकार की वस्तु बनाने के लिए आपको इस इंटरफ़ेस को लागू करने की आवश्यकता है, इंटरफ़ेस के सभी सार विधियों के लिए शरीर प्रदान करें और कार्यान्वयन वर्ग की वस्तु प्राप्त करें।

उदाहरण

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. हम जावा में पैक () विधि का उपयोग कब कर सकते हैं?

    द पैक() विधि विंडो . में परिभाषित है जावा में वर्ग और यह फ्रेम को आकार देता है ताकि इसकी सभी सामग्री उनके पसंदीदा आकार पर या उससे ऊपर हो। पैक() . का एक विकल्प विधि setSize() . को कॉल करके स्पष्ट रूप से एक फ्रेम आकार स्थापित करना है या सेटबाउंड्स () तरीके। सामान्य तौर पर, पैक () . का उपयोग करते हु

  1. क्या हम जावा में एक प्रारंभ () विधि को ओवरराइड कर सकते हैं?

    हां , हम ओवरराइड . कर सकते हैं शुरू करें () थ्रेड . की विधि जावा में कक्षा। हमें super.start() . को कॉल करना चाहिए एक नया धागा बनाने की विधि और कॉल करने की आवश्यकता है run() उस नव निर्मित धागे में विधि। अगर हम रन () . कहते हैं सीधे हमारे प्रारंभ () . के भीतर से विधि विधि, इसे वास्तविक थ्रेड में

  1. हम जावा में इनवोकलेटर () विधि को कैसे कॉल कर सकते हैं?

    एक आह्वानबाद में() विधि एक स्थिर . है स्विंग यूटिलिटीज . की विधि वर्ग और इसका उपयोग किसी कार्य को करने के लिए किया जा सकता है अतुल्यकालिक रूप से एडब्ल्यूटी . में ईवेंट डिस्पैचर थ्रेड . SwingUtilities.invokeLater() विधि SwingUtilities.invokeAndWait() . की तरह काम करती है सिवाय इसके कि यह अनुरोध