作業(yè)2(繼承&接口&抽象類) 子類可以繼承父類的哪些成員? 子類可以繼承父類的屬性、方
作業(yè)2(繼承&接口&抽象類)
?
子類可以繼承父類的哪些成員?
子類可以繼承父類的屬性、方法、構(gòu)造函數(shù)等成員。
簡(jiǎn)述重載和覆蓋的區(qū)別?
重載:指在一個(gè)類中多次定義同名函數(shù),但參數(shù)列表不同,返回類型可以相同也可以不同。
?
覆蓋:指子類通過(guò)定義與父類同名函數(shù),來(lái)覆蓋父類函數(shù),子類函數(shù)參數(shù)列表和返回類型必須與父類完全相同。
什么是抽象類,有何優(yōu)點(diǎn)?抽象類如何定義,寫出抽象函數(shù)的定義格式?
抽象類是一種特殊的類,它可以包含抽象方法和非抽象方法。抽象方法是沒(méi)有實(shí)現(xiàn)的方法,只有聲明,而非抽象方法是有實(shí)現(xiàn)的方法。
?
抽象類的優(yōu)點(diǎn):
?
1. 抽象類可以定義抽象方法,這些抽象方法可以被子類繼承并實(shí)現(xiàn),從而實(shí)現(xiàn)代碼重用。
?
2. 抽象類可以被用作接口,它可以被用來(lái)定義一組抽象方法,這些抽象方法可以被實(shí)現(xiàn)類實(shí)現(xiàn)。
?
3. 抽象類可以定義一個(gè)通用的框架,它可以被子類繼承,從而實(shí)現(xiàn)代碼重用。
?
抽象定義:抽象是一種特殊的類,它可以包含抽象方法和非抽象方法,抽象方法是沒(méi)有實(shí)現(xiàn)的方法,只有聲明,而非抽象方法是有實(shí)現(xiàn)的方法。
?
抽象函數(shù)定義格式:
?
public abstract void functionName(parameters);
簡(jiǎn)述構(gòu)造子類對(duì)象時(shí),子類和父類構(gòu)造函數(shù)的執(zhí)行順序?
構(gòu)造子類對(duì)象時(shí),會(huì)首先執(zhí)行父類的構(gòu)造函數(shù),然后再執(zhí)行子類的構(gòu)造函數(shù)。
接口和抽象類的聯(lián)系與區(qū)別?
聯(lián)系:
1. 接口和抽象類都是用來(lái)提供統(tǒng)一的規(guī)范,抽象類中可以定義抽象方法和非抽象方法,而接口中只能定義抽象方法;
2. 抽象類和接口都是不能被實(shí)例化的;
3. 抽象類和接口都可以被繼承;
?
區(qū)別:
1. 抽象類中可以定義抽象方法和非抽象方法,而接口中只能定義抽象方法;
2. 抽象類中可以定義成員變量,而接口中不能定義成員變量;
3. 抽象類只能單繼承,而接口可以多實(shí)現(xiàn);
4. 抽象類中的方法可以有不同的訪問(wèn)權(quán)限,而接口中的方法只能是public;