package 向上轉型;
/*向上轉型:子類的物件賦值給父類的引用(父類的引用所指向的屬性是父類的屬性)
,如此就可呼叫父類類的方法,而不可以呼叫自身的方法,但如果父類的方法被子類重寫,
那就呼叫子類的方法 。好處:減少重複***/
public class human
public static void main(string args)
}class male extends human
}class female extends human
}程式執行結果
向上轉型的好處,列如:
設計積木遊戲,各種形狀的子類積木作為物件時,可以通過向上轉型存放在父類積木的引用當中,這樣做的目的是,如果去列印輸出積木時,不進行向上轉型時,我們就要根據子類的物件去書寫多個輸出函式,這些函式的差異只是引數型別不同,有大量的重複**,但向上轉型後,可以在父類中書寫乙個輸出方法,各種子類物件來呼叫父類的方法,這樣就可以減少**的重複
父類指向子類(向上轉型),只能呼叫父類方法
當父類引用例項指向子類物件 向上轉型 時,例項只能夠呼叫父類方法 但是如果子類重寫了父類方法,例項就預設呼叫子類重寫後的方法!當使用多型方式呼叫方法時,首先檢查父類中是否有該方法,如果沒有,則編譯錯誤 如果有,再去呼叫子類的同名方法。如下 class a public string show a o...
父類引用指向子類物件
要理解多型性,首先要知道什麼是 向上轉型 我定義了乙個子類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...