子類繼承父類的屬性和方法,使建立子類變得很簡單,實現了**重用。繼承還有乙個重要的特性,父類物件可以引用子類例項。也就是子類例項可以賦值給父類的物件變數。
這個特性可以這樣理解:兒子繼承父親,兒子又把管理自己事務的權利交給父親,那麼父親就可以代表兒子處理事務,這就是父類物件引用子類例項。現在生活中,父母可以代表兒子處理事務,總公司可以代表子公司生命權利。
父類指標要訪問子類的成員的情況下,要強制型別轉換。
父類的物件變數=new 子類型別;
((子類型別)父類引用).子類變數
using system;
class father
", this._wealth);}}
class son: father
}class daughter: father
}class test
}別人的總結:
將子類物件賦值給父類物件,所得到物件是這樣的乙個物件:
它是乙個編譯是為父類物件,但執行卻是乙個子類物件。具體特徵如下:
1.被宣告為父類物件
2.擁有父類屬性
3.占用子類的記憶體空間
4.子類方法覆蓋父類的方法時,此時物件呼叫的是子類的方法;否則,自動呼叫繼承父類的方法.
5.我人認為這個物件既不是父類物件,也不是子類物件.當我們用到它的方法時,
我便把它看成子類物件;若用到它的屬性時,我把它看成父類物件.
它是乙個占用父類屬性,而使用子類方法的物件.至於到底是什麼物件,我認為還是得根據宣告來,它應算是父類物件,但擁有子類方法.
父類引用子類物件
父類引用子類物件 package test class fruit1 string get1 父類引用子類物件 如果父類的方法可以被重寫 靜態方法不能被重寫,因為它是隨著類的建立而存在於記憶體,只有乙份 並且已經重寫,那麼呼叫的是子類的方法 反之,則呼叫父類裡的方法 public class fru...
父類引用指向子類物件
要理解多型性,首先要知道什麼是 向上轉型 我定義了乙個子類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...