java क्या हम जावा में एक इंटरफ़ेस का उदाहरण बना सकते हैं?




interface instance (6)

Normaly, आप एक इंटरफेस के लिए एक संदर्भ बना सकते हैं। लेकिन आप इंटरफ़ेस के लिए एक उदाहरण नहीं बना सकते हैं।

इस प्रश्न का उत्तर यहां दिया गया है:

जावा में एक इंटरफ़ेस का उदाहरण बनाना संभव है?

कहीं मैंने पढ़ा है कि आंतरिक अज्ञात वर्ग का उपयोग करके हम इसे नीचे दिखाए गए अनुसार कर सकते हैं:

interface Test  
{  
    public void wish();  
}  
class Main  
{  
    public static void main(String[] args)  
    {  
        Test t=new Test()  
        {  
            public void wish()  
            {  
                System.out.println("output: hello how r u");  
            }  
        };  
    t.wish();  
    }  
}    

cmd> javac Main.java  
cmd> java Main  
output: hello how r u  

क्या यह यहाँ सही है?


आप जावा में इंटरफ़ेस को कभी भी चालू नहीं कर सकते हैं। हालांकि, आप उस ऑब्जेक्ट को संदर्भित कर सकते हैं जो इंटरफ़ेस के प्रकार से इंटरफ़ेस लागू करता है। उदाहरण के लिए,

public interface A
{
}
public class B implements A
{
}

public static void main(String[] args)
{
    A test = new B();
    //A test = new A(); // wont compile
}

आपने उपरोक्त क्या किया है वह एक अज्ञात वर्ग बनाता है जो इंटरफ़ेस लागू करता है। आप एक अज्ञात ऑब्जेक्ट बना रहे हैं, टाइप interface Test की ऑब्जेक्ट नहीं।


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


हाँ यह सही है। आप इसे एक आंतरिक कक्षा के साथ कर सकते हैं।


हां हम कर सकते हैं, "बेनामी वर्ग आपको अपना कोड अधिक संक्षिप्त बनाने में सक्षम बनाता है। वे आपको एक ही समय में एक कक्षा घोषित करने और तुरंत चालू करने में सक्षम बनाते हैं। वे स्थानीय वर्गों की तरह हैं, सिवाय इसके कि उनके पास कोई नाम नहीं है" - >> जावा डॉक


हां, आपका उदाहरण सही है। बेनामी कक्षाएं इंटरफेस को कार्यान्वित कर सकती हैं, और यही एकमात्र समय है जिसके बारे में मैं सोच सकता हूं कि आपको "लागू" कीवर्ड के बिना इंटरफ़ेस को लागू करने वाला एक वर्ग दिखाई देगा। यहां एक और कोड नमूना देखें:

interface ProgrammerInterview  {
    public void read();
}

class Website  {
    ProgrammerInterview p = new ProgrammerInterview () {
        public void read() {
            System.out.println("interface ProgrammerInterview class implementer");
       }
     };
}

यह ठीक काम करता है। इस पृष्ठ से लिया गया था:

http://www.programmerinterview.com/index.php/java-questions/anonymous-class-interface/





anonymous-class