सी # में, यदि आपके पास एक ही विधि (कहें, एफ()) के साथ दो आधार इंटरफेस हैं, तो आप विभिन्न इम्प्लेक्ट करने के लिए स्पष्ट कार्यान्वयन का उपयोग कर सकते हैं। एफ() के लिए। यह आपको ऑब्जेक्ट का अलग-अलग दृष्टिकोण के साथ अलग-अलग दृष्टिकोण का इलाज करने की अनुमति देता है: IMIInterface1 या IMyInterface2 के रूप में। जावा में यह संभव है?जावा में मौजूद इंटरफेस का सी # "स्पष्ट कार्यान्वयन" है?
उत्तर
नहीं, जावा में सी # के स्पष्ट इंटरफ़ेस कार्यान्वयन की तरह कुछ भी नहीं है।
प्लस तरफ, जावा में कॉन्व्रैरिट रिटर्न प्रकार हैं, इसलिए यदि आप इंटरफ़ेस निर्दिष्ट करने से अधिक दृढ़ता से टाइप किए गए कार्यान्वयन प्रदान करना चाहते हैं, तो ठीक है। उदाहरण के लिए, इस ठीक है:
interface Foo
{
Object getBar();
}
public class Test implements Foo
{
@Override
public String getBar()
{
return "hi";
}
}
सी # कि अनुमति नहीं होगी - और यह चारों ओर से एक तरीके से स्पष्ट रूप से एक अधिक विशिष्ट सार्वजनिक विधि (आमतौर पर इंटरफेस कार्यान्वयन से बुलाया इंटरफ़ेस को लागू करने और उसके बाद है आम तौर पर है)।
यदि आप विधियों को ओवरलोड कर चुके हैं तो आप केवल यह कर सकते हैं। यदि आपके पास दो विधियां हैं जो अलग-अलग चीजों को करने की अपेक्षा की जाती हैं, तो उनके पास अलग-अलग नाम IMHO होना चाहिए।
नहीं और यह जावा में कभी भी मौजूद नहीं होना चाहिए। यह उन लोगों पर फेंकने की एक और हड्डी है जो अच्छी डिजाइन से परेशान नहीं हो सकते हैं।
किसी इंटरफ़ेस के स्पष्ट कार्यान्वयन की आवश्यकता या उपयोग नहीं की जानी चाहिए। इस समस्या को हल करने के बेहतर तरीके हैं जो हल करने का प्रयास करते हैं।
आप जावा में अज्ञात इंटरफ़ेस कार्यान्वयन के तंत्र का उपयोग करके समान प्रभाव प्राप्त कर सकते हैं।
उदाहरण देखें:
interface Foo {
void f();
}
interface Bar {
void f();
}
public class Test {
private String foo = "foo", bar = "bar";
Foo getFoo() {
return new Foo() {
@Override
public void f() {
System.out.println(foo);
}
};
}
Bar getBar() {
return new Bar() {
@Override
public void f() {
System.out.println(bar);
}
};
}
public static void main(String... args) {
Test test = new Test();
test.getFoo().f();
test.getBar().f();
}
}
- 1. बनाम स्पष्ट इंटरफेस कार्यान्वयन
- 2. कार्यान्वयन इंटरफेस सी #
- 3. जावा - कार्यान्वयन इंटरफेस
- 4. जावा में एक हैंडलबर्स.जेएस कार्यान्वयन मौजूद है?
- 5. निहित बनाम स्पष्ट इंटरफेस
- 6. जावा - इंटरफेस के अंदर कार्यान्वयन उदाहरण
- 7. सी # स्पष्ट समानता ऑपरेटर कार्यान्वयन आवश्यक
- 8. अंतरफलक बनाम कार्यान्वयन इंटरफ़ेस को स्पष्ट रूप से सी #
- 9. दस्तावेज इंटरफेस और उनके कार्यान्वयन
- 10. जावा: NoSuchMethodException जब विधि स्पष्ट रूप से मौजूद है
- 11. टीएस इंटरफेस कार्यान्वयन
- 12. इंटरफेस कार्यान्वयन सुपर-क्लास
- 13. स्वचालित संपत्ति का उपयोग कर एक इंटरफ़ेस का स्पष्ट कार्यान्वयन
- 14. सी # इंटरफेस कार्यान्वयन संबंध सिर्फ "कर सकते हैं" संबंध है?
- 15. जावा: क्या String.Format जावा में मौजूद है जैसे सी #?
- 16. अंतर्निहित <> स्पष्ट इंटरफेस
- 17. सी ++ में जावा इंटरफेस के समतुल्य?
- 18. जावा में मित्र अवधारणा का कार्यान्वयन
- 19. Grails सेवाओं में कार्यान्वयन से इंटरफेस को अलग कैसे करें?
- 20. स्पष्ट इंटरफ़ेस कार्यान्वयन और प्रतिबिंब।
- 21. जावा इंटरफेस कोई अपवाद नहीं घोषित करता है। कार्यान्वयन के चेक अपवादों का प्रबंधन कैसे करें?
- 22. इंटरफेस और कार्यान्वयन कक्षा (एस)
- 23. सी में एमवीआर का कार्यान्वयन?
- 24. आंतरिक कक्षाओं में कार्यान्वयन (इंटरफेस लागू करना)
- 25. जावा में टैगिंग इंटरफेस
- 26. इंटरफ़ेस के GetEnumerator का स्पष्ट कार्यान्वयन स्टैक ओवरफ़्लो
- 27. जावा इंटरफेस निर्देशिका संरचना?
- 28. सी ++ में इंटरफेस को कैसे कार्यान्वित करें?
- 29. PHP में इंटरफेस का बिंदु क्या है?
- 30. क्या पाइथन में सी #/जावा-स्टाइल इंटरफेस हैं?
आप यह भी मानना है कि निजी वंशानुक्रम केवल "लोग हैं, जो अच्छा डिजाइन के साथ परेशान नहीं किया जा सकता है" के लिए है? जावा से यह एक और उपयोगी ओओपी क्षमता गायब है। –
यह जावा में कभी भी इसी कारण से नहीं होगा कि प्रतिनिधियों जावा में कभी नहीं होंगे .. इसे Google करें। इस बारे में एक अच्छा लेख है कि प्रतिनिधियों ने जावा में कभी नहीं किया और यह समान है। यह बुरा है क्योंकि इससे आपको अच्छी चीजें नहीं मिलतीं जो आप इसके साथ कर सकते हैं। कुछ माइक्रोसॉफ्ट और इसका पारिस्थितिक तंत्र नहीं मिलता है। – eaglestorm
@ एलजेस्टॉर्म, आपको एहसास है कि स्विंग "ऑब्जेक्ट्स" ऑब्जेक्ट्स को प्रतिनिधियों की तरह व्यवहार करने के लिए भी सही है? साथ ही, मुझे यह थोड़ा मनोरंजक लगता है कि आपके लगभग सभी प्रश्न .NET से संबंधित हैं। –