## 多態
### 1、定義
* 同一個對象,在程序不同時刻的多種運行狀態。舉例:水(氣態,液態,固態)
### 2、實現多態的前提條件
1. 必須有繼承或者實現關系
2. 必須有方法的重寫
3. 父類(接口)的 引用指向子類(實現)的對象
### 3、多態的好處和弊端:
好處:
多態的存在提高了程序的擴展性和后期可維護性
弊端:
雖然可以預先使用,但是只能訪問父類中已有的功能,運行的
是后期子類的功能內容。
不能預先使用子類中定義的特有功能。
### 4、多態中對象調用成員的特點
java在執行的時候分為兩個時期:編譯期,運行期
父類 子類 = 子類對象
Fu f = new Zi();
A:成員變量:編譯期看類型,運行期看類型
編譯看左邊,運行看左邊
B:成員方法:編譯期看類型,運行期看對象
編譯看左邊,運行看右邊
C:靜態方法:編譯期看類型,運行期看類型
編譯看左邊,運行看左邊
### 5、多態的思想:
指揮同一批對象做事情。舉例:帶兵打仗,下課等。
### 6、多態的一個局限性:
* 只能夠訪問父類的成員變量和成員方法,不能訪問子類自身對象里面的成員變量和成員方法
如何解決這個局限性,可以使用```向下轉型```來操作
```
Son son = (Son) father;
son.love = "愛好";
```
備注:向下造型的時候需要注意轉換的類型是否是需要的類型,可能會導致類型轉換異常
可以通過```instanceof```關鍵字來避免類型轉換異常
```instanceof```關鍵字作用:判斷當前引用是否屬于指定的對象類型
- JAVA筆記
- 01、Java掃盲
- 1、JVM、JRE和JDK的區別
- 2、環境變量path和classpath的作用是什么?
- 3、變量有什么用?為什么要定義變量?什么時候用?
- 4、&和&&的區別?
- 5、標示符命名規則
- 6、數據類型
- 7、類型轉換
- 8、java語言的三種技術架構
- 9、java的跨平臺性
- 10、有符號數據的表示法(次重點)
- 11、按位運算符
- 12、函數
- 13、重載
- 14、數組
- 15、內存結構
- 一、數據結構
- 隨機數
- 流程控制語句
- if 和 if...else
- switch
- for
- 函數
- 重載
- 數組
- 數組的復制
- 冒泡排序法算法
- 方法
- 方法的重載
- 方法的練習
- 面向對象
- 面向對象的特點
- 如何創建類
- 如何創建對象
- 一、引用數據類型具有的默認值
- 二、成員變量和局部變量
- 三、構造函數
- 四、氣球理論
- 五、繼承(extends)
- 權限修飾符
- 封裝
- 內存的分配
- 多態
- super關鍵字
- static關鍵字
- final關鍵字
- 抽象類 抽象方法(abstract)
- 接口(interface)
- 單例模式(singleton)
- Object類
- 內部類
- 匿名內部類
- 階段項目
- 捕魚達人
- 飛機大戰
- 護盾功能
- 血條
- 爆炸
- API
- String 類相關的方法
- 第三方(Apache)jar包的使用
- 正則表達式
- StringBuffer 和StringBuilder 和Date
- 核心API:集合類
- List 集合
- 遍歷集合的方式
- 包裝類
- Map 集合
- 異常