Saturday, 15 September 2012

interface - Java Multiple Inheritance without Source Code -


मेरे पास thing नामक वर्ग और robot नामक एक वर्ग है। बात में एक सार्वजनिक शून्य है setBlocksExit () रोबोट कुछ तरीकों से मुझे भी इच्छा है

मैंने रोबोट बढ़ा दिया है, लेकिन मुझे यह भी setBlocksExit () से Thing चाहते हैं। मैं setBlocksExit () वाले एक इंटरफ़ेस को बनाऊँगा और फिर एक क्लास बनायेगा:

  सार्वजनिक वर्ग सी रोबोट लागू करता है BlockExit {}  

समस्या यह है कि मेरे पास बात और रोबोट के लिए स्रोत कोड तक पहुंच नहीं है I मैं एक शैक्षिक पैकेज 'becker.jar' का उपयोग कर रहा हूं और सभी कोड संकलित किए गए हैं इसलिए मैं इसे इंटरफेस निकालने के लिए उपयोग नहीं कर सकता। मेरे विकल्प क्या हैं?

आपके विकल्प निम्न हैं:

  • बात को बढ़ाएं और एक रोबोट का संदर्भ दें, जिसमें आप सभी रोबोट विधियों का प्रतिनिधि करते हैं।
  • बढ़ाएं रोबोट और थिंग ऑब्जेक्ट का संदर्भ देते हैं, जिसे आप setBlocksExit को कॉल करते हैं।
  • एक ताजा वर्ग बनाएं और एक रोबोट और थिंग का एक संदर्भ और इन दो ऑब्जेक्ट को कॉल करें।

यदि आप एक आईडीई का उपयोग कर रहे हैं जैसे ईक्लेप्से आप "अंतरफलक निकालने" भी कर सकते हैं और स्वयं प्रतिनिधि तरीकों को उत्पन्न कर सकते हैं।

विकल्प 1:

  वर्ग सी थिंग {अंतिम रोबोट रोबोट का विस्तार करता है; सार्वजनिक सी (रोबोट रोबोट) {this.robot = robot; } सार्वजनिक int robotMethod1 () {वापसी robot.robotMethod1 (); } ...}  

विकल्प 2:

  वर्ग सी रोबोट का विस्तार (अंतिम चीज बात; सार्वजनिक सी (बात बात) {यह.thing = बात; } सार्वजनिक शून्य सेट ब्लॉक्सएक्सिट (बूलियन फ्लैग) {रिटर्न चीट.सेट ब्लॉक्सएक्सिट (फ्लैग); } ...}  

विकल्प 3:

  वर्ग सी {अंतिम बात बात; अंतिम रोबोट रोबोट; सार्वजनिक सी (बात बात, रोबोट रोबोट) {this.thing = बात; This.robot = रोबोट; } सार्वजनिक शून्य सेट ब्लॉक्सएक्सिट (बूलियन फ्लैग) {रिटर्न चीट.सेट ब्लॉक्सएक्सिट (फ्लैग); } सार्वजनिक int robotMethod1 () {वापसी robot.robotMethod1 (); } ...  

यदि आप एक्लिप्स का उपयोग कर रहे हैं तो आप इस सुविधा का उपयोग कर सकते हैं:

I 'मुझे यकीन है कि जो भी आईडीई आप उपयोग कर रहे हैं, वह समान सुविधा है।


No comments:

Post a Comment