CodeGym /Java Blog /अनियमित /जावा में लागू करता है
John Squirrels
स्तर 41
San Francisco

जावा में लागू करता है

अनियमित ग्रुप में प्रकाशित
जब कुछ विरासत के जावा ओओपी प्रतिमान के बारे में बात करते हैं, तो उनका मतलब आमतौर पर एक अभिभावक वर्ग को उत्तराधिकारी, एक बाल वर्ग के साथ विस्तारित करना होता है। हालाँकि जब आप जावा इम्प्लीमेंट्स कीवर्ड पर आते हैं, तो इसका मतलब है कि हम अमूर्तता के दूसरे स्तर पर चले जाते हैं और जावा में इंटरफेसेस के साथ काम करना शुरू कर देते हैं। हम इस बारे में बात करने जा रहे हैं कि इंटरफेस क्या हैं, वे किस लिए हैं, कार्यान्वयन कैसे होता है।

इंटरफ़ेस और कार्यान्वयन क्या है

आपने शायद "इंटरफ़ेस" शब्द कई बार सुना होगा। उदाहरण के लिए, एक कंप्यूटर में एक इनपुट इंटरफ़ेस (माउस और कीबोर्ड) होता है, कई प्रोग्रामों में उपयोगकर्ता इंटरफ़ेस होते हैं। व्यापक अर्थों में, एक इंटरफ़ेस दो परस्पर क्रिया करने वाली पार्टियों के बीच एक कड़ी है। उदाहरण के लिए, वही कीबोर्ड या टीवी रिमोट कंट्रोल। प्रोग्रामिंग में, और विशेष रूप से जावा में, एक इंटरफ़ेस एक विशिष्ट अनुबंध है जो कहता है कि इसे लागू करने वाला वर्ग क्या करेगा। एक इंटरफ़ेस केवल व्यवहार को परिभाषित करता है। यह उस वस्तु के बारे में कुछ नहीं कहता है जो इसे लागू करेगी। आप इस तरह जावा में एक इंटरफ़ेस घोषित कर सकते हैं:

public interface MyInterface  {

     // constants declaration 
     // methods without implementation
     // static methods
     // default methods (default)
     // private methods
}
यहाँ जावा में इम्प्लीमेंट्स का सिंटैक्स है :

public class MyClass implements MyInterface{
//implementing the methods of MyInterface 
//Other code
} 
एक इंटरफ़ेस व्यवहार को निर्दिष्ट किए बिना उसका वर्णन करता है। उदाहरण के लिए, "आंदोलन" जैसे व्यवहार को विभिन्न प्रकार की वस्तुओं पर लागू किया जा सकता है: एक साइकिल, एक व्यक्ति, एक कार, एक नदी में पानी, और इसी तरह। तैरने का व्यवहार बतख, जहाज या मछली का व्यवहार हो सकता है। इन वस्तुओं में इसके अलावा कुछ भी सामान्य नहीं है कि वे चल सकते हैं या तैर सकते हैं। हां, और तैराकी के साथ ही वे बहुत अलग हैं। हालाँकि, जावा में आप डक , बोट , फिश क्लासेस बना सकते हैं और उन्हें तैरने की क्षमता को लागू करने दे सकते हैं। यह वह जगह है जहाँ Java इम्प्लीमेंट्स कीवर्ड का उपयोग किया जाता है।

कीवर्ड उदाहरण लागू करें


public interface Swimmable {
  
   void moveForward();
   void TurnRight();
   void TurnLeft();
  
}
जैसा कि आप देख सकते हैं, विधियां स्वयं लागू नहीं होती हैं। लेकिन हमने घोषणा की कि इस इंटरफ़ेस को लागू करने वाली कक्षाओं को एक सीधी रेखा में तैरने में सक्षम होना चाहिए, साथ ही दाएं और बाएं मुड़ना चाहिए। आइए ऐसी कक्षाएं बनाएं जो इस इंटरफ़ेस को लागू करेंगी।

public class Duck implements Swimmable {
//implementing the methods
   public void moveForward() {
       System.out.println(" Quack, I am moving forward...");
   }

   public void TurnRight(){
       System.out.println("I am turning right...");
   }
   public void TurnLeft(){
       System.out.println("I am turning left...");

   }

   public void Stop() {
       System.out.println("Quack. I am relaxing on the surface of the water...");
   }

}

public class Fish implements Swimmable {

   public void moveForward() {
       System.out.println("I am moving forward...");
   }

   public void TurnRight(){
       System.out.println("I am turning right...");
   }
   public void TurnLeft() {
       System.out.println("I am turning left...");
   }

   public void turnUp(){
       System.out.println("I am turning up...");
   }

   public void turnDown(){
       System.out.println("I am turning down...");
   }

   public void Stop() {
       System.out.println("I am relaxing somewhere under the water surface...");
   }
}
अनुबंध के अनुसार, सभी वर्ग जो स्विमेबल इंटरफ़ेस को लागू करते हैं, उन्हें आगे तैरने में सक्षम होना चाहिए ( मूवफॉरवर्ड () विधि को लागू करें), साथ ही दाएं और बाएं मुड़ें। इन विधियों के कार्यान्वयन की आवश्यकता है। बत्तख और मछली अलग-अलग तैरते हैं। मान लीजिए कि एक मछली के पास दो अतिरिक्त तरीके हैं जो उसके ऊपर और नीचे तैरने की क्षमता को लागू करते हैं। तैरने योग्य इंटरफ़ेस में यह नहीं है। हालाँकि, यदि हम मछली वर्ग का एक बच्चा बनाते हैं, उदाहरण के लिए, टूना या सामन, तो वे हर "मछली" की तरह ऊपर और नीचे तैरने में सक्षम होंगे।

जावा में एकाधिक इंटरफेस

जैसा कि आप शायद पहले से ही जानते हैं, जावा एकाधिक वंशानुक्रम का समर्थन नहीं करता है। इसका मतलब है कि एक वर्ग को एक सुपरक्लास से ही विरासत में मिला जा सकता है। हालाँकि एक तरह से आप अभी भी जावा में "मल्टीपल इनहेरिटेंस" का उपयोग कर सकते हैं, क्योंकि एक वर्ग कई इंटरफेस को लागू कर सकता है।

To implement multiple interfaces, use the next syntax: 
interface MyFirstInterface {
   public void myMethod();
}
interface MySecondInterface {
   public void myOtherMethod();
}

// MyClass implements both MyFirstInterface and MySecondInterface
class MyClass implements MyFirstInterface, MySecondInterface {
   public void myMethod() {
      //method implementation
   }
   public void myOtherMethod() {
     //method implementation
   }
}

एकाधिक इंटरफेस उदाहरण

याद रखें कि एक बत्तख न केवल तैर सकती है, बल्कि उड़ भी सकती है। आइए फ़्लाइट इंटरफ़ेस लिखें और इसे हमारे डक में लागू करें।

public interface Flyable {
   double startAge = 0.1;
   void fly();
}

public class Duck implements Swimmable, Flyable {

   public void moveForward() {
       System.out.println(" Quack, I am moving forward...");
   }

   public void TurnRight(){
       System.out.println("I am turning right...");
   }
   public void TurnLeft(){
       System.out.println("I am turning left...");

   }

   public void Stop() {
       System.out.println("Quack. I am relaxing on the surface of the water...");
   }

   public void fly(){
       System.out.println("I am flying!!!");
   }

}
और फिर, यह याद रखना महत्वपूर्ण है कि हम इंटरफ़ेस क्यों लिख रहे हैं। मान लीजिए कि यह एक पक्षी, एक हवाई जहाज, एक स्काइडाइवर और एक सिंहपर्णी द्वारा कार्यान्वित किया जाता है, तो उनकी उड़ानें पूरी तरह से अलग होंगी।
टिप्पणियां
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION