लोड हो रहा है...

Java में इंटरफेस

खाली विधि हेडर वाला interface घोषित करिए, फिर उन विधियों को एक क्लास में implements से भरिए। void horn(); और बिना बॉडी वाला interface Signal लिखिए। class Truck implements Signal लिखिए और horn को वह बॉडी दीजिए जो honk छापे। Yard.java में एक Truck बनाइए और t.horn() बुलाइए। javac Yard.java से कंपाइल कर java Yard चलाइए। स्क्रीन को honk दिखाना चाहिए। दूसरी डेमो एक क्लास को एक साथ दो इंटरफेस implements करने देती है। enum अगले पृष्ठ के लिए छोड़ दें — यह पाठ एक विधि का वादा और उसे निभाने वाली क्लास है।

एक interface विधि लागू करिए

ओवरराइडिंग पृष्ठ ने उस चाइल्ड पर horn फिर लिखा जो पहले से extends Car था। यह पृष्ठ बिना बॉडी वाले वादे से शुरू होता है। Yard.java खोलिए। पब्लिक क्लास नाम Yard रखिए। अगर इंटरफेस कहानी दबाएँ तो बचे Car/Truck extends डेमो, कंस्ट्रक्टर super प्रिंट, पथ डेमो, और कीबोर्ड Scanner हटा दीजिए। प्रोग्राम टाइपिंग का इंतज़ार न करे। import लाइन की ज़रूरत नहीं।
क्लास के ऊपर इंटरफेस घोषित करिए:
interface Signal {
void horn();
}
हेडर सेमीकोलन पर खत्म होता है। इस शुरुआती रूप में इंटरफेस के अंदर horn के लिए { } बॉडी नहीं है।
वह क्लास घोषित करिए जो वादा निभाए:
class Truck implements Signal {
Truck के अंदर उसी नाम की public विधि लिखिए और बॉडी भरिए:
public void horn() {
System.out.println("honk");
}
कीवर्ड implements है, extends नहीं। क्लास को इंटरफेस पर सूचीबद्ध हर विधि के लिए बॉडी देनी चाहिए। इस पृष्ठ पर वह केवल horn है।
Yard.main में एक ट्रक बनाइए और विधि बुलाइए:
Truck t = new Truck();
t.horn();
कॉल Truck पर लिखी बॉडी चलाती है, इसलिए स्क्रीन honk छापती है।

Yard Truck implements Signal horn

java
interface Signal {
    void horn();
}

class Truck implements Signal {
    public void horn() {
        System.out.println("honk");
    }
}

public class Yard {
    public static void main(String[] args) {
        Truck t = new Truck();
        t.horn();
    }
}

जिस फ़ोल्डर में Yard.java है वहाँ से javac Yard.java चलाइए। जब कोष्ठक, ब्रेस और सेमीकोलन मेल खाते हैं, javac अपनी कोई पंक्ति नहीं लिखता। फिर java Yard चलाइए — java Yard.java नहीं। रन कमांड से .java अंत छोड़ दीजिए। फ़ाइल में एक पब्लिक क्लास रखिए ताकि नाम Yard से मेल खाए। इंटरफेस Signal और सहायक क्लास Truck इस शुरुआती रूप में बिना public रहें।
स्क्रीन honk दिखाती है। रन एक बार घुमाइए। Java Yard.main से शुरू होता है। new Truck() एक ट्रक बनाता है जिसने Signal का वादा किया। t.horn() Truck पर बॉडी चलाता है और honk छापता है। आप कभी new Signal() नहीं लिखते — इंटरफेस विधियों के नाम रखता है; क्लास बॉडी और ऑब्जेक्ट देती है।
अगर javac मना करे, तीन बात जाँचिए। पहला, क्लास पंक्ति को implements Signal कहना चाहिए, extends Signal नहीं। दूसरा, हर इंटरफेस विधि को क्लास पर मिलती विधि चाहिए। तीसरा, इस शिक्षण रूप में लागू विधि public है ताकि इंटरफेस के पब्लिक अनुबंध से मेल खाए। अगर पुरानी ओवरराइड फ़ाइल से अभी भी beep दिखे, इंटरफेस शिक्षण फ़ाइल पर जाएँ और फिर java Yard चलाइए।
स्क्रीन देखते हुए नियम ज़ोर से कहिए: इंटरफेस कॉल का नाम रखता है, क्लास बॉडी भरती है, ऑब्जेक्ट वह बॉडी चलाता है। प्रिंट की मालिक क्लास पर implements रखिए। इस पृष्ठ पर enum न गढ़ें। enum अगले पाठ का इंतज़ार करता है।

एक क्लास पर दो इंटरफेस लागू करिए

दूसरा प्रोग्राम Yard और Truck रखता है। अब Truck दो इंटरफेस लागू करता है। Signal अभी भी horn माँगता है। Mark show माँगता है। क्लास दोनों बॉडी भरती है। main दोनों विधियाँ बुलाता है।

Yard Truck implements Signal and Mark

java
interface Signal {
    void horn();
}

interface Mark {
    void show();
}

class Truck implements Signal, Mark {
    public void horn() {
        System.out.println("honk");
    }
    public void show() {
        System.out.println("truck");
    }
}

public class Yard {
    public static void main(String[] args) {
        Truck t = new Truck();
        t.horn();
        t.show();
    }
}

javac Yard.java से कंपाइल करिए, फिर java Yard चलाइए। स्क्रीन पहले honk, फिर truck दिखाती है। पहली पंक्ति Truck पर भरे Signal वादे से आती है। दूसरी पंक्ति उसी क्लास पर भरे Mark वादे से आती है। implements सूची में इंटरफेस नाम अल्पविराम से अलग करिए: implements Signal, Mark।
क्लास हेडर एक बार और पढ़िए। एक क्लास। दो इंटरफेस। दो विधि बॉडी। यह शुरुआती तस्वीर है एक से अधिक वादा निभाने की, बिना दो extends पैरेंट के। Java एक क्लास को केवल एक क्लास extend करने देती है; वह कई इंटरफेस लागू कर सकती है। यह पृष्ठ छोटी Yard फ़ाइल में वह अल्पविराम सूची दिखाता है।
अगर Mark सूची में हो और आप show छोड़ दें, javac मना करता है क्योंकि सूचीबद्ध हर इंटरफेस विधि को बॉडी चाहिए। अगर implements सूची से Mark हटा दें पर फिर भी show लिखें, आपके पास साधारण विधि है, Mark का इंटरफेस निवाह नहीं। जब दोनों वादे जाँचना चाहें तो क्लास पंक्ति पर दोनों नाम रखिए।

extends ओवरराइड से तुलना

ओवरराइडिंग पृष्ठ पर Truck extends Car था और उसने वह horn फिर लिखा जिसमें पहले से पैरेंट बॉडी थी। इस पृष्ठ पर Signal बिना बॉडी शुरू होता है, और Truck implements Signal पहली बॉडी देता है। आप अभी भी Yard.java कंपाइल करते हैं और java Yard चलाते हैं। आप अभी भी t.horn() बुलाते हैं। नए टोकन interface, implements, और — दूसरी डेमो में — अल्पविराम-अलग implements सूची हैं।
अगर बची ओवरराइड फ़ाइल अभी खुली है, आप extends Car और शायद honk के पास beep देखेंगे। इंटरफेस शिक्षण फ़ाइल पर जाएँ ताकि फ़ाइल ऊपर interface Signal दिखाए और क्लास पंक्ति implements दिखाए। इस पृष्ठ से enum डेमो दूर रखिए। इस पृष्ठ से कीबोर्ड इनपुट दूर रखिए।

यह पृष्ठ enum के लिए क्या छोड़ता है

यह पृष्ठ implements से इंटरफेस विधियाँ भरता है। अगला पृष्ठ enum दिखाता है, जहाँ एक टाइप नामित मानों का स्थिर सेट सूचीबद्ध करता है। यहाँ इंटरफेस वादों के साथ रहिए। आज की डेमो को अभी enum सूची से ज़रूरी रूप में न बदलें।
बाद में जब आप enum इस्तेमाल करें, उसी प्रोग्राम में अन्य टाइप पर अभी भी इंटरफेस लागू कर सकते हैं। इस पृष्ठ को उस पड़ोसी कहानी का इंटरफेस आधा मानिए। दोनों Yard डेमो तब तक खत्म करिए जब तक honk — फिर honk प्लस truck — अपने-आप लगे, उसके बाद enum पाठ खोलिए।

enum से पहले

आप खाली horn() वाला interface Signal लिख सकते हैं, उसे Truck पर लागू कर सकते हैं, और t.horn() से honk देख सकते हैं। आप एक क्लास पर Signal और Mark लागू कर honk फिर truck देख सकते हैं। हर रखी डेमो के लिए Yard.java कंपाइल कर java Yard चलाइए। क्लास ने इंटरफेस वादे निभाए। अगला पृष्ठ enum है, जहाँ एक टाइप स्थिर नाम सूचीबद्ध करता है।
स्पष्ट implements कहानी के लिए एक-इंटरफेस honk डेमो रखिए। स्पष्ट अल्पविराम सूची के लिए दो-इंटरफेस डेमो रखिए। इस पृष्ठ से enum फ़ाइलें दूर रखिए। ये तीन आदतें आगे बढ़ने से पहले चेकपॉइंट हैं। जब t.horn() के बाद honk आए — और जब दूसरी डेमो show() के बाद truck भी छापे — इंटरफेस ने इस पाठ का काम किया और आप enum वाले अगले विषय के लिए तैयार हैं।
फ़ोल्डर का आखिरी चक्कर: एक पब्लिक Yard, खाली विधियों वाले इंटरफेस हेडर, उन्हें implements करने वाली क्लास, बिना कीबोर्ड इंतज़ार, बिना जबरन enum। खुली डेमो पर एक बार और javac Yard.java और java Yard चलाइए। अगर स्क्रीन अभी भी आपके लिखे इंटरफेस भराव छापती है, वादे मज़बूत हैं और कोर्स अगले पृष्ठ पर enum पर जा सकता है।

🧠 अपने ज्ञान की परीक्षा करें

शुरू करने के लिए तैयार

अपने ज्ञान की परीक्षा करें

इस इंटरैक्टिव क्विज़ के साथ अपनी चुनौती लें और देखें कि आप विषय को कितनी अच्छी तरह समझते हैं

❓
5
प्रश्न
🎯
70%
पास करने के लिए
♾️
∞
समय
🔄
∞
प्रयास

📝 निर्देश

  • हर प्रश्न को ध्यान से पढ़ें
  • हर प्रश्न के लिए सबसे अच्छा उत्तर चुनें
  • आप जितनी बार चाहें क्विज़ दोबारा दे सकते हैं
  • आपकी प्रगति शीर्ष पर दिखाई जाएगी