Java學習筆記之多態變量和向上造型

    類定義了類型,DVD類所創建的對象的類型就是DVD。類可以有子類,所以由那些類定義的類型可以有子類型。在DoME的例子中,DVD類型就是Item類型的子類型。
  public class CD extends Item
        CD繼承與Item

子類型類似於類的層次,類型也構成了類型層次。子類所定義的類型是其超類的類型的子類型。
當把一個對象賦值給一個變量時,對象的類型必須與變量的類型相匹配,如:
    Car myCar = new Car();        

是一個有效的賦值,因爲Car類型的對象被賦值給聲明爲保存Car類型對象的變量。但是由於引入 了繼承,這裏的類型規則就得敘述得更完整些:
    一個變量可以保存其所聲明的類型或該類型的任何子類型。
對象變量可以保存其聲明的類型的對象,或該類型的任何子類型的對象。
Java中保存對象類型的變量是多態變量。“多態”這個術語(字面意思是許多形態)是指一個變量可以保存不同類型(即其聲明的類型或任何子類型)的對象。
    
                子類和子類型
    類定義了類型
    子類定義了子類型
    子類的對象可以被當做父類的對象來使用
      1、  賦值給父類的變量
      2、傳遞給需要父類對象的函數
      3、放進存放父類對象的容器裏


                  子類型和賦值
子類的對象可以賦值給父類的變量

                    多態變量
java的對象變量是多態的,他們能保存不止一種類型的對象
他們可以保存的是聲明類型的對象,或聲明類型的子類的對象
當把子類的對象賦給父類的變量的時候,就發生了向上造型。

向上造型

造型:把一個類型的對象賦給另一個類型的對象

                函數調用的綁定
當通過對象變量調用函數的時候,調用那個函數這件事情叫做綁定
靜態綁定:根據變量的聲明類型來決定
動態綁定:根據變量的動態類型來決定
在成員函數中調用其他成員函數也是通過this這個對象變量來調用的

覆蓋override
子類和父類中存在名稱和參數表完全相同的函數,這一對函數構成覆蓋關係
通過父類的變量調用存在覆蓋
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章