父類(lèi)調(diào)用子類(lèi)重寫(xiě)方法 如何調(diào)用被重寫(xiě)的父類(lèi)方法java?
如何調(diào)用被重寫(xiě)的父類(lèi)方法java?在子類(lèi)中提供超語(yǔ)法來(lái)調(diào)用父類(lèi)中的方法:public class a{public void call(){//to do}public class B extend
如何調(diào)用被重寫(xiě)的父類(lèi)方法java?
在子類(lèi)中提供超語(yǔ)法來(lái)調(diào)用父類(lèi)中的方法:
public class a{
public void call(){
//to do
}
public class B extend a{
public void call(){超級(jí)呼叫()
}
如何通過(guò)父類(lèi)調(diào)用子類(lèi)重寫(xiě)的方法和子類(lèi)特有?
父類(lèi)引用指向子類(lèi)對(duì)象。以多態(tài)方式調(diào)用方法時(shí),首先檢查父類(lèi)中是否存在該方法。如果是這樣,請(qǐng)使用子類(lèi)的相同名稱(chēng)調(diào)用該方法。否則,編譯錯(cuò)誤。//如果父類(lèi)沒(méi)有這個(gè)方法,它就不能指向子類(lèi)的方法
因?yàn)槿绻割?lèi)有私有成員變量,它通常在父類(lèi)的構(gòu)造函數(shù)中初始化,因?yàn)樽宇?lèi)構(gòu)造函數(shù)不能訪(fǎng)問(wèn)父類(lèi)的私有成員。
父類(lèi)構(gòu)造器為什么會(huì)調(diào)用被子類(lèi)重寫(xiě)的方法?
也不一定。
1. 普通類(lèi)繼承不一定重寫(xiě)父類(lèi)方法。
2. 抽象類(lèi)繼承。如果子類(lèi)也是抽象類(lèi),則不必重寫(xiě)父類(lèi)方法。如果子類(lèi)不是抽象類(lèi),則子類(lèi)必須在父類(lèi)中實(shí)現(xiàn)抽象方法。
3. 接口類(lèi)繼承。如果是子接口,則可以擴(kuò)展父接口的方法;如果是子抽象類(lèi),則可以部分或全部實(shí)現(xiàn)父接口的方法;如果不是抽象類(lèi),則需要子類(lèi)實(shí)現(xiàn)父接口中定義的所有方法。