java強(qiáng)制類型轉(zhuǎn)換規(guī)則 什么是隱式轉(zhuǎn)換和顯式轉(zhuǎn)換?
什么是隱式轉(zhuǎn)換和顯式轉(zhuǎn)換?C語(yǔ)言中,數(shù)據(jù)類型的隱式轉(zhuǎn)換與顯式轉(zhuǎn)換分別是個(gè)什么意思?隱式轉(zhuǎn)換是沒(méi)有轉(zhuǎn)換類型的轉(zhuǎn)換,比如int到float,在TB=4中可以像這樣浮動(dòng)A=B是隱式轉(zhuǎn)換,A=(float)B
什么是隱式轉(zhuǎn)換和顯式轉(zhuǎn)換?
C語(yǔ)言中,數(shù)據(jù)類型的隱式轉(zhuǎn)換與顯式轉(zhuǎn)換分別是個(gè)什么意思?
隱式轉(zhuǎn)換是沒(méi)有轉(zhuǎn)換類型的轉(zhuǎn)換,比如int到float,在TB=4中可以像這樣浮動(dòng)A=B是隱式轉(zhuǎn)換,A=(float)B是顯示轉(zhuǎn)換。不同之處在于,如果在向下轉(zhuǎn)換期間不顯示轉(zhuǎn)換,則會(huì)出現(xiàn)問(wèn)題。例如float a=4.5intb=a,這里可能會(huì)報(bào)告一個(gè)錯(cuò)誤,因?yàn)閕nt可以自動(dòng)提升為float,但是float不能自動(dòng)轉(zhuǎn)換為int,所以需要顯式轉(zhuǎn)換,即intb=(float)a是最安全的,所以顯式轉(zhuǎn)換不會(huì)出錯(cuò),但是隱式轉(zhuǎn)換可能會(huì)出錯(cuò)。
c#中進(jìn)行類型轉(zhuǎn)換時(shí),為什么子類可以隱式轉(zhuǎn)換到父類?
隱式轉(zhuǎn)換不需要在代碼中指定轉(zhuǎn)換類型,例如:int intnumber=10double doublenumber=intnumberintnumber將隱式轉(zhuǎn)換為double type。相反,對(duì)于顯式轉(zhuǎn)換,需要指定轉(zhuǎn)換類型,例如:double doublenumber=10.1int intnumber=(int)doublenumber。對(duì)于表示數(shù)值的基本數(shù)據(jù)類型,可以將值范圍較小的數(shù)據(jù)類型轉(zhuǎn)換為值范圍較大的數(shù)據(jù)類型進(jìn)行隱式轉(zhuǎn)換,反之亦然,必須執(zhí)行顯示轉(zhuǎn)換。就像上面的兩個(gè)例子。對(duì)于類類型,子類可以隱式轉(zhuǎn)換為父類,反之亦然,必須顯式轉(zhuǎn)換。例如:string STR1=“ABC”object obj=STR1//子類可以轉(zhuǎn)換成父類,隱式轉(zhuǎn)換string STR2=(string)obj//父類可以轉(zhuǎn)換成子類,如果兩個(gè)類之間沒(méi)有繼承關(guān)系,則需要顯式轉(zhuǎn)換,無(wú)法執(zhí)行隱式轉(zhuǎn)換或顯式轉(zhuǎn)換。此時(shí),必須在轉(zhuǎn)換的類中定義隱式轉(zhuǎn)換方法或顯式轉(zhuǎn)換方法。