重寫的方法與父類方法簽名(方法名稱和參數(shù)列表)相同;
創(chuàng)新互聯(lián)公司服務(wù)項目包括定海網(wǎng)站建設(shè)、定海網(wǎng)站制作、定海網(wǎng)頁制作以及定海網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,定海網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到定海省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
子類重寫的方法訪問修飾符范圍不能低于父類;
父類的私有方法不能被重寫;
static修飾的方法不能被重寫
返回值類型:
如果父類中方法返回值類型是八大基本類型、String和void,則必須相同;
如果是其他引用類型,則重寫方法中返回值類型相同或其父類返回類型的子類。
關(guān)于異常,子類重寫方法異常范圍要小于父類方法異?;驔]有異常。
在Java中如何來定義重寫:Java程序中類的繼承特性可以產(chǎn)生一個子類,子類繼承父類就擁有了父類的非私有的屬性(方法和變量),在子類中可以增加自己的屬性(方法和變量),同時也可以對父類中的方法進行擴展,以增強自己的功能,這樣就稱之為重寫,也稱為復(fù)寫或者覆蓋。所謂方法重寫就是子類的方法和父類中繼承下來的方法具有完全相同的方法名、返回值類型、方法的參數(shù)個數(shù)以及參數(shù)類型,這樣才能被稱為方法重寫。
代碼體現(xiàn):
// 這是父類的定義
public class Person {
public void eat() {
System.out.println("=====這是父類Person的eat方法=======");
}
}
// 這是子類的定義
public class Student extends Person {
@Override
public void eat() {
System.out.println("===這是子類Student的eat方法===");
}
// main方法測試
public static void main(String[] args) {
Student student = new Student();
student.eat(); //輸出:===這是子類Student的eat方法===
}
}
子類重寫父類的方法后,在實例化子類的時候則調(diào)用的是子類中的方法,父類的方法就如同被覆蓋了一樣。如果在子類中需要調(diào)用父類的方法,則在子類方法中使用super關(guān)鍵字調(diào)用父類的方法,格式:super.父類中的方法名。
重寫:除了方法體里面的代碼,其他的部分都要和父類中的一樣(訪問權(quán)限要比父類中定義的訪問權(quán)限寬松,如父類中定義為public,那子類重寫的方法也必須是public,不能是protected或者private)。
樓上說法不準(zhǔn)確:重載方法區(qū)別在于參數(shù)個數(shù)和參數(shù)類型,不在于返回值。也就是,重載方法的返回值可以不一樣,而重寫方法的返回值必須一樣。
給你總結(jié)區(qū)分一下:重寫方法出現(xiàn)在子類中,只有在發(fā)生繼承關(guān)系的前提下,在能出現(xiàn)重寫方法,而且重寫的是父類的方法。而重載方法出現(xiàn)在同一個類中,和繼承沒有關(guān)系,重載的是類自己的方法。