हाय मैं बस यह सुनिश्चित करना चाहता हूं कि मेरे पास ये अवधारणाएं सही हैं। जावा में ओवरलोडिंग का मतलब है कि आपके पास विभिन्न प्रकार के तर्क या विभिन्न डेटा प्रकारों के साथ एक कन्स्ट्रक्टर या विधि हो सकती है। i.eजावा अधिभार बनाम ओवरराइटिंग
public void setValue(){
this.value = 0;
}
public void setValue(int v){
this.value = v;
}
इस विधि के बारे में कैसे? क्या यह अभी भी ओवरलोडिंग माना जाएगा क्योंकि यह एक अलग डेटा प्रकार लौटा रहा है?
public int setValue(){
return this.value;
}
दूसरा सवाल यह है: क्या जावा में अधिलेखन है? क्या यह विरासत से संबंधित है। चलो मैं निम्नलिखित है:
public class Vehicle{
double basePrice = 20000;
//constructor defined
public double getPrice(){
return basePrice;
}
}
public class Truck extends Vehicle{
double truckPrice = 14000;
//constructor defined
public double getPrice(){
return truckPrice;
}
}
तो अब मान लीजिए कि मैं निम्नलिखित
Truck truck = new Truck();
अगर मैं
truck.super.getPrice()
फोन इस, वाहन वर्ग से मूल्य वापसी होगी जाने 20,000
अगर मैं
पर कॉल करता हूंtruck.getPrice()
इस ट्रक कक्षा में मूल्य वापसी होगी, 14,000
मेरी जानकारी के दोनों प्रश्नों के लिए सही है?
है मैं setValue() का उपयोग नहीं होगा, क्योंकि यह यह क्या मूल्य के लिए सेट कर रहा है के रूप में अस्पष्ट है। clearValue() स्पष्ट होगा और इस प्रकार अधिभार के लिए कोई आवश्यकता नहीं है। –
का मतलब है ओवरराइडिंग ओवरराइडिंग नहीं। किसी ऑब्जेक्ट की ओवरराइटिंग विधियों को अक्सर जावास्क्रिप्ट में बात की जाती है। अर्थात। Object.toString = function() {वापसी "इस फ़ंक्शन को ओवरराइट कर दिया गया है";}; –