मैं कुछ कोड में आया और इसके एक निश्चित पहलू को समझ नहीं पाया हालांकि मैंने कुछ व्यापक खोज की है!जावा में कक्षा के नाम के आसपास ब्रांड्स का उपयोग क्यों किया जाता है?
मेरा प्रश्न है: कक्षाओं को कभी-कभी निम्नलिखित कोड में ब्रांड्स के भीतर क्यों घोषित किया जाता है?
public class Animal {
public static void hide() {
System.out.println("The hide method in Animal.");
}
public void override() {
System.out.println("The override method in Animal.");
}
}
public class Cat extends Animal {
public static void hide() {
System.out.println("The hide method in Cat.");
}
public void override() {
System.out.println("The override method in Cat.");
}
public static void main(String[] args) {
Cat myCat = new Cat();
Animal myAnimal = (Animal)myCat;
myAnimal.hide();
myAnimal.override();
}
}
जहाँ मेरा फोकस विशेष रूप से कोड की इस पंक्ति पर है:
Animal myAnimal = (Animal)myCat;
मेरा मानना है कि यह इस तथ्य से कोई लेना देना है कि कुछ एक वर्ग एक और फैली हुई है लेकिन अनिश्चित क्या वर्ग कोष्ठक में परिभाषित कर रहा हूँ का प्रतीक है।
इस पर किसी भी मदद की सराहना की जाती है। पहले ही, आपका बहुत धन्यवाद।
यह एक टाइपकास्ट है लेकिन इस मामले में टाइपकास्ट आवश्यक नहीं है - चूंकि 'बिल्ली' एक उप-प्रकार का पशु है। जब आप उप-प्रकार को सुपर-टाइप असाइन करना चाहते हैं, तो टाइपकास्ट आवश्यक हैं। बिल्ली बिल्ली = (बिल्ली) कुछ अनंत; '। यदि आप ऐसा करते हैं तो आपको यह सुनिश्चित करना होगा कि वेरिएबल में या तो 'बिल्ली' या उप-प्रकार का 'बिल्ली' निहित है, उदा। 'exampleof' का उपयोग कर। अन्यथा जावा 'क्लासकास्ट अपवाद' फेंक देगा।इस विशेष मामले में –
, चूंकि बिल्ली पशु को बढ़ाती है और मेरा एनीमल पहले से ही पशु है, तो आपको myCat को पशु में डालने की आवश्यकता नहीं है। तो, पशु myAnimal = myCat; काम किया होगा – Shark
ब्रैकेट '[]' - ब्रेसेस '{}' - ब्रांड्स '()' - "कोण ब्रैकेट" '<>' –