हालाँकि, सुपरक्लास वैरिएबल से सबक्लास के तरीकों तक पहुँचने पर, कुछ सीमाएं होती हैं।
... } पब्लिक क्लास कैट ने पालतू जानवरों का विस्तार किया { निजी स्ट्रिंग रंग; सार्वजनिक स्ट्रिंग getColor () {...} } सार्वजनिक वर्ग केनेल { सार्वजनिक स्थैतिक शून्य main (String [] args) { पालतू बिल्ली = नई बिल्ली ("बिल्ली के समान", 12, "नारंगी"); cat.getColor (); // संकलक त्रुटि: getColor () पालतू में परिभाषित नहीं है } } केनेल वर्ग में, जब एक कैट ऑब्जेक्ट को एक पालतू चर को सौंपा जाता है, तो केवल पालतू जानवरों में परिभाषित सदस्य सुलभ होते हैं। इसमें getName () और getage () जैसे तरीके शामिल हैं, लेकिन getColor () नहीं। सबक्लास के रूप में चर को घोषित करें:
चर को विशिष्ट उपवर्ग के रूप में घोषित करें:
abstract public class Pet { ... } public class Cat extends Pet { private String color; public String getColor() { ... } } public class Kennel { public static void main(String[] args) { Pet cat = new Cat("Feline", 12, "Orange"); cat.getColor(); // Compiler error: getColor() not defined in Pet } }
2। सबक्लास के लिए चर कास्ट करें:
चर को किसी ज्ञात या अपेक्षित उपवर्ग में डालें:
पालतू बिल्ली = नई बिल्ली ("फेलिन", 12, "ऑरेंज"); ((कैट) कैट) .getColor (); // मान्य, getColor () कास्टिंग के माध्यम से
Cat cat = new Cat("Feline", 12, "Orange"); cat.getColor(); // Valid, getColor() is defined in Cat
उदाहरण कार्यान्वयन:
यहाँ केनेल वर्ग का एक सही संस्करण है:सार्वजनिक स्थैतिक शून्य main (String [] args) { कैट कैट = नई बिल्ली ("बिल्ली के समान", 12, "नारंगी"); System.out.println ("कैट का रंग:" cat.getColor ()); } }
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3