2011-06-07 10 views
11

के साथ ओवरलोडिंग यह कोड int प्रिंट क्यों करेगा?लघु और int

public static void main(String[] args) { 
    short s = 5; 
    A(s); 
} 
public static void A(int a){ 
    System.out.println("int"); 
} 

public static void A(Short a){ 
    System.out.println("short"); 
} 
+0

कक्षा कहां है? –

+2

छोटा या छोटा? –

+0

कोई भी वर्ग उपयुक्त है। पहला - छोटा, दूसरा - लघु। – ilalex

उत्तर

15

क्योंकि int को ऊपर की ओर जावा के संस्करण 1.0 में था और ऑटो-मुक्केबाजी संस्करण 5.0 में जोड़ा गया था। व्यवहार को बदलने से जावा के पुराने संस्करण के लिए लिखा गया कोड टूट जाएगा।

हालांकि, इस तरह के मिश्रण प्रकार से पता चलता है कि आपके डिजाइन में कुछ गड़बड़ है, यह केवल कुछ है जो आप गूढ़ व्यक्तियों में ढूंढने जा रहे हैं। ;)

+0

यह मेरे सहयोगी का सवाल है, जो प्रमाणीकरण की तैयारी कर रहा है। – ilalex

+0

यदि कोई साक्षात्कार प्रश्न था, तो मैं सुझाव दूंगा कि आप इस तरह कोड को इस तरह लिखें क्योंकि यह भ्रमित है। ;) –

12

क्योंकि चौड़ा करने की धड़कन मुक्केबाजी

कारण:

क्योंकि चौड़ा वहाँ लंबे था, जहां से पहले मुक्केबाजी बाद में पेश किया गया था किसी भी कोड यह ऐसा करता है को तोड़ने के लिए तो नहीं।

+3

+1: जावा के 4 प्रमुख संस्करणों द्वारा। –

+2

इसके अलावा ** चौड़ा होना विभिन्न तर्क ** –

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