"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > मैं जावा में एक सुपरक्लास चर से उपवर्ग विधियों तक कैसे पहुंच सकता हूं?

मैं जावा में एक सुपरक्लास चर से उपवर्ग विधियों तक कैसे पहुंच सकता हूं?

2025-03-24 को पोस्ट किया गया
ब्राउज़ करें:650

हालाँकि, सुपरक्लास वैरिएबल से सबक्लास के तरीकों तक पहुँचने पर, कुछ सीमाएं होती हैं। How Can I Access Subclass Methods from a Superclass Variable in Java?

निम्नलिखित कोड स्निपेट पर विचार करें:

... } पब्लिक क्लास कैट ने पालतू जानवरों का विस्तार किया { निजी स्ट्रिंग रंग; सार्वजनिक स्ट्रिंग 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