一:多態(tài)性是建立在繼承性質(zhì)之下的,如果類之間不存在繼承性就無多態(tài)性可言。
二:基本表現(xiàn):子類對象可以替代父類對象進行調(diào)用,好處:增加了通用性,如一個變量聲明為父類對象,則可以賦值為父類對象及其子類對象。
三:注意點:
1、eg:Person p = new Student(); 作用為:Person在內(nèi)存空間申請一個引用空間,new Stundent()為對象的創(chuàng)建Student類并未其中的成員分配內(nèi)存空間, = 表示引用變量p指向創(chuàng)建對象的首地址。根據(jù)p的實際引用類型來訪問Student,因為編譯器是通過申明的類型進行檢查的。
2、一個引用類型的變量申明為父類類型,實際引用的是子類對象的話,那么該變量就不能再訪問子類中添加的屬性和方法。
3、虛方法調(diào)用:在父類中申明過,子類中重寫過的方法,系統(tǒng)會根據(jù)運行時對象的真正類型來具體調(diào)用哪個方法:即子類調(diào)用子類方法,父類調(diào)用父類方法。
4、對象造型:只有一個對象真正類型為子類類型,才能造型成功,故instanceof關(guān)鍵字的產(chǎn)生
5、協(xié)變返回類型:允許重寫方法時修改返回值的類型,但必須是重寫前方法返回類型的子類或者實現(xiàn)類類型
|
|