2011-09-15 14 views
12

यदि Object पदानुक्रम में सभी वर्गों की मां है, तो वह बच्चे वर्ग की वस्तु को वापस करने की विधि को कैसे कार्यान्वित कर सकता है (उदाहरण के लिए toStringString ऑब्जेक्ट देता है)?ऑब्जेक्ट ऑब्जेक्ट्स स्ट्रिंग्स कैसे लौटते हैं? (जावा)

+3

+1 "ऑब्जेक्ट सभी वर्गों की मां है" - lol – Bohemian

उत्तर

2

एक दिलचस्प बात है कि: Object वर्ग अपनी उपवर्गों में से एक के बारे में जानता है, अर्थात् String (विशेष रूप से, घोषणा और toString() विधि लागू करने के लिए)।

जावा भाषा विनिर्देश का हिस्सा यह है कि सभी वर्ग वस्तु के पूर्ण रूप से उप-वर्ग हैं। यद्यपि तकनीकी रूप से यह एक वर्ग के लिए "खराब डिजाइन" है, जो इसके उप-वर्गों में से एक को संदर्भित करता है, मुझे लगता है कि यह एक "एज केस" है और इसके बारे में चिंतित होने के लिए कुछ नहीं है।

3

यह तब तक कोई समस्या नहीं है जब तक कि बाल वर्ग मौजूद न हो। उदाहरण के लिए, निम्नलिखित मान्य है:

A.java:

public class A { 
    B b; 
} 

B.java:

public class B extends A { 

} 
0

एक डिफ़ॉल्ट करता है कि Object पर toString के कार्यान्वयन न होने के कारण सुनिश्चित करें कि String उदाहरण वापस कर दिया गया है। चूंकि प्रत्येक वर्ग Object का एक उदाहरण है, इसलिए आप हमेशा उस डिफ़ॉल्ट कार्यान्वयन को मुफ्त में प्राप्त करते हैं, हालांकि आप उप-वर्गों पर toString को लागू और कार्यान्वित कर सकते हैं।

किसी अन्य वर्ग के किसी भी वर्ग लौटने वाले उदाहरणों में विधियों को रोकने में कुछ भी नहीं है। तुम हमेशा

return new SomethingElse()

जहां SomethingElse एक और वर्ग है कर सकते हैं।

संबंधित मुद्दे