覆蓋(override):子類繼承了父類的同名無參函數(shù)。當(dāng)子類從父類繼承了一個(gè)無參函數(shù)揩抡,而又定義了一個(gè)同樣的無參函數(shù)户侥,則子類定義的方法覆蓋父類的方法镀琉,稱為覆蓋。廢棄父方法
1蕊唐、覆蓋的方法的標(biāo)志必須要和被覆蓋的方法的標(biāo)志完全匹配屋摔,才能達(dá)到覆蓋的效果;
2替梨、覆蓋的方法的返回值必須和被覆蓋的方法的返回一致钓试;
3、覆蓋的方法所拋出的異常必須和被覆蓋方法的所拋出的異常一致副瀑,或者是其子類弓熏;
4、被覆蓋的方法不能為private糠睡,否則在其子類中只是新定義了一個(gè)方法挽鞠,并沒有對(duì)其進(jìn)行覆蓋。
重載(overload):子類繼承了父類的同名有參函數(shù)狈孔。當(dāng)子類繼承了父類的一個(gè)同名方法信认,且方法參數(shù)不同,稱為重載均抽。通過方法的重載嫁赏,子類可以重新實(shí)現(xiàn)父類的某些方法,使其具有自己的特征油挥。保留父方法
1潦蝇、在使用重載時(shí)只能通過不同的參數(shù)樣式。例如喘漏,不同的參數(shù)類型护蝶,不同的參數(shù)個(gè)數(shù),不同的參數(shù)順序(當(dāng)然翩迈,同一方法內(nèi)的幾個(gè)參數(shù)類型必須不一樣持灰,例如可以是fun(int, float), 但是不能為fun(int, int))负饲;
2堤魁、不能通過訪問權(quán)限、返回類型返十、拋出的異常進(jìn)行重載妥泉;
3、方法的異常類型和數(shù)目不會(huì)對(duì)重載造成影響洞坑;
4盲链、對(duì)于繼承來說,如果某一方法在父類中是訪問權(quán)限是priavte,那么就不能在子類對(duì)其進(jìn)行重載刽沾,如果定義的話本慕,也只是定義了一個(gè)新方法,而不會(huì)達(dá)到重載的效果侧漓。
重寫(overwrite):當(dāng)前類的同名方法锅尘。通過方法的重寫,一個(gè)類可以有多個(gè)具有相同名字的方法布蔗,由傳遞給它們不同的個(gè)數(shù)和類型的參數(shù)來決定使用哪種方法藤违。因此,重寫的名稱是當(dāng)前類中的同名函數(shù)纵揍,不是父類中的函數(shù)名顿乒。
------《Java高手真經(jīng)之Java核心編程技術(shù)》