父類指向子類(向上轉型),只能呼叫父類方法

2021-09-24 22:45:46 字數 409 閱讀 7994

當父類引用例項指向子類物件(向上轉型)時,例項只能夠呼叫父類方法;但是如果子類重寫了父類方法,例項就預設呼叫子類重寫後的方法

(當使用多型方式呼叫方法時,首先檢查父類中是否有該方法,如果沒有,則編譯錯誤;如果有,再去呼叫子類的同名方法。)

**如下:

class a 

public string show(a obj)

}class b extends a

public string show(a obj)

}class c extends b{}

class d extends b{}

public class extends

}

執行後控制台輸出「b and a」

向上轉型 父類的引用指向子類的物件

package 向上轉型 向上轉型 子類的物件賦值給父類的引用 父類的引用所指向的屬性是父類的屬性 如此就可呼叫父類類的方法,而不可以呼叫自身的方法,但如果父類的方法被子類重寫,那就呼叫子類的方法 好處 減少重複 public class human public static void main ...

父類引用指向子類物件

要理解多型性,首先要知道什麼是 向上轉型 我定義了乙個子類cat,它繼承了animal類,那麼後者就是前者是父類。我可以通過 cat c new cat 例項化乙個cat的物件,這個不難理解。但當我這樣定義時 animal a new cat 這代表什麼意思呢?很簡單,它表示我定義了乙個animal...

父類引用指向子類物件

是多型的一種實現方式 這樣做使程式靈活性更好,若有多個子類,只需改變引用就能實現不同的功能,而不需要改變程式 父類 a 子類 a1,a2 a obj1 new a1 a obj2 new a2 如果a有乙個方法是show 子類實現了show 那麼obj1.show 就是第乙個子類的show obj2...