7.多態

多態:可以理解爲事物存在的多種形態。比如人:男人,女人。


Cat c=new Cat()------------------>Animal c=new Cat();

---------------------------------------------------------------------------------------------------------------

多態的體現:

父類的引用指向了自己子類的對象;

(父類的引用可接收自己子類的對象)

---------------------------------------------------------------------------------------------------------------

多態的好處:

提高程序的擴展性

---------------------------------------------------------------------------------------------------------------

多態的繼承:

類與類之間有關係,要麼繼承,要麼實現,通常存在覆蓋

---------------------------------------------------------------------------------------------------------------

弊端:提高擴展性,但只能用父類的引用訪問父類中的成員。

---------------------------------------------------------------------------------------------------------------

轉型:


Animal a=new Cat();------向上轉型


如何調用貓的特有方法呢?

採用強制轉型的方法:

Cat c=(Cat)a;--------向下轉型


所以,先發生向上轉型,才能發生向下轉型。

---------------------------------------------------------------------------------------------------------------

注意:

1.不允許將父類的對象轉換成子類類型,而是將父類引用指向子類對象,該引用可被提升/強制轉換;

2.多態至始至終都是子類對象在做着變化。

---------------------------------------------------------------------------------------------------------------

在多態中非靜態成員函數的特點:

1.在編譯期間:參閱引用型變量所屬的的類中是否有調用的方法。

 如果有,編譯通過,如果沒有編譯失敗。

2.在運行期間:參閱對象所屬的類是否含有調用的方法

即:Animal a=new Cat():編譯看左邊,運行看右邊

---------------------------------------------------------------------------------------------------------------

3.多態中成員變量特點:編譯運行都參考左邊,即引用型變量所屬的類

4.在多態中,static 成員:無論編譯運行都參考左邊

---------------------------------------------------------------------------------------------------------------

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章