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




interface instance (5)

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

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

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

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  

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


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


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

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 की ऑब्जेक्ट नहीं।


संक्षिप्त उत्तर ... हाँ। जब आप एक चर प्रारंभ करते हैं तो आप एक अज्ञात वर्ग का उपयोग कर सकते हैं। this पर एक नज़र डालें


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


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

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