第六章:復(fù)用類(lèi) 1、toString是一個(gè)特殊的方法,當(dāng)編譯器需要一個(gè)String而你的類(lèi)是一個(gè)對(duì)象的時(shí)候,編譯器會(huì)自動(dòng)調(diào)用toString方法,當(dāng)然,你得保證你的類(lèi)里面有這個(gè)方法。 2、往每個(gè)類(lèi)中都寫(xiě)一個(gè)main函數(shù),會(huì)使調(diào)試方便得多。 3、如果基類(lèi)中沒(méi)有默認(rèn)的(即沒(méi)有參數(shù)的)構(gòu)造函數(shù)而有有參數(shù)的構(gòu)造函數(shù),則在子類(lèi)的構(gòu)造函數(shù)中必須調(diào)用基類(lèi)的構(gòu)造函數(shù),否則編譯會(huì)出錯(cuò)。也就是說(shuō),當(dāng)子類(lèi)實(shí)例化的時(shí)候 4、編譯器會(huì)強(qiáng)制將你基類(lèi)的構(gòu)造函數(shù)的調(diào)用放在派生類(lèi)的構(gòu)造函數(shù)的最前面。也就是說(shuō),在它之前不能有任何東西。 5、雖然編譯器會(huì)強(qiáng)制你對(duì)基類(lèi)進(jìn)行初始化,并且會(huì)要求你在構(gòu)造函數(shù)的開(kāi)始部分完成初始化,但它不會(huì)檢查你是不是進(jìn)行了成員對(duì)象的初始化。 6、合成還是繼承?一般來(lái)說(shuō),合成用于新類(lèi)要使用舊類(lèi)的功能,而不是其接口的場(chǎng)合。也就是說(shuō),把對(duì)象嵌進(jìn)去,用它實(shí)現(xiàn)新類(lèi)的功能,但是用戶(hù)看到的是新累的接口,而不是嵌進(jìn)去 7、一般情況下,應(yīng)該將類(lèi)的成員數(shù)據(jù)定義成private。 8、上傳(upcasting)總是安全的。 9、private方法都隱含有final的意思。由于你不能訪問(wèn)private的方法,因此你也不能復(fù)寫(xiě)它。你可以給一個(gè)private方法加final修飾符,但這樣做什么意義也沒(méi)有。 10、9中提到的不能復(fù)寫(xiě)private函數(shù),是指,該函數(shù)在基類(lèi)中是private的,并且在派生類(lèi)中也是private的。如果在派生類(lèi)中不是private的,則可以復(fù)寫(xiě)。 |
|