子類和子類型
- 類定義了類型
- 子類定義了類型
- 子類的對象可以別當做父類的對象來使用
- 複製給需要對象的函數
- 傳遞給需要父類對象的函數
- 放進存放父類對象的容器裏
子類型與賦值
子類的對象可以賦值給父類的變量
子類的對象可以傳遞給需要父類對象的函數
子類的對象可以存放在父類對象的容器裏
--多態變量
- Java的對象變量是多態的,他能保存不知一種類型的對象
- 他們可以保存的是聲明類型對象,或聲明類型的子類的對象
- 當把子類的對象賦給父類的變量的時候,就發生了向上的造型
向上造型
把一個對象的類型賦值給類型的變量
造型cast
- 子類的對象可以賦值給父類的變量
- 注意!Java中不存在對象對對象賦值,是讓一個管理者,管理一個對象
- 父類的對象不能賦值給子類的變量
Vechicle v;
Car c=new car;
v=c;//可以
c=v;//編譯錯誤 - 可以用造型;
c=(Car) v;
(只有當v這個變量實際管理的是Car才行)
函數調用的綁定
- 當通過對象變量調用函數額時候,調用那個函數這件事情叫做綁定
- 靜態綁定:根據變量的聲明類型來決定
動態綁定:根據局變量的動態類型來決定 - 在成員函數中調用其他成員函數也是通過this這個變量來調用的
覆蓋override
- 子類和父類中存在名稱和參數完全相同的函數,這一對函數構成覆蓋關係
- 通過父類的變量調用用存在覆蓋關係的函數時,會調用變量當時所管理的對象所屬的函數
多態;通過一個變量去調用一個函數
object類
類型系統-1
所有的類都是集成自Object類
toSting()
equals()