JavaSE(四)——方法重写、多态、接口
生活随笔
收集整理的這篇文章主要介紹了
JavaSE(四)——方法重写、多态、接口
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 方法重寫
- 1.1 定義
- 1.2 重寫的注意事項
- 1.3 實例
- 2. final關鍵字
- 2.1 定義
- 2.2 修飾特點
- 3. 多態
- 3.1 定義
- 3.2 多態前提
- 3.3 成員訪問特點
- 實例
- 3.4 多態的弊端
- 4. 抽象類
- 4.1 定義
- 4.2 抽象類特點
- 4.3 abstract關鍵字
- 4.4 抽象類的成員特點
- 4.5 抽象類和普通類區別
- 5. 接口
- 5.1 定義
- 5.2 成員特點
- 5.3 類和接口的關系
- 實例
- 6. 感想
1. 方法重寫
1.1 定義
- 子類對父類功能的實現不滿意,我想要根據自己的差異性,來進行實現,那子類就可以進行方法重寫,去覆蓋掉父類中的方法,在實際調用中,以子類重寫的為準。
1.2 重寫的注意事項
- 父類私有的方法子類不能重寫,因為私有的方法,子類都不能繼承,何談重寫。
- 子類在重寫父類方法時,子類方法前面的權限修飾符,不能比父類的低,要比父類的高,或一樣。權限修飾符:public>protected>缺省的>private
- 構造方法,沒有重寫這么一說,構造方法不能重寫。
- 靜態方法不參與重寫。
1.3 實例
- 子類重寫fu類的show 方法(Ctrl+o)
2. final關鍵字
2.1 定義
- final關鍵字是最終的意思,可以修飾類,變量,成員方法。由于繼承中有一個方法重寫的現象,而有時候不想讓子類去重寫父類的方法,這時就可使用關鍵字: final
2.2 修飾特點
- final修飾特點
修飾類: 被修飾類不能被繼承。
修飾方法: 被修飾的方法不能被重寫。
修飾變量: 被修飾的變量不能被重新賦值,因為這個量其實是一個常量。
3. 多態
3.1 定義
- 某一個事物,在不同時刻表現出來的不同狀態。
舉例: Cat c=new Cat();
Animal a=new Cat();
貓可以是貓的類型。同時貓也是動物的一種,也可以把貓稱為動物。
3.2 多態前提
- 要有繼承關系。
- 要有方法重寫。
- 要有父類引用指向子類對象。父 f = new 子();
3.3 成員訪問特點
(1)成員變量 :編譯看左邊,運行看左邊。
(2)構造方法:創建子類對象的時候,會訪問父類的構造方法,對父類的數據 進行初始化。
(3)成員方法: 編譯看左邊,運行看右邊。
(4)靜態方法:編譯看左邊,運行看左邊。(靜態和類相關,算不上重寫,所以,訪問還是左邊的)
實例
- 父類、子類以及測試類代碼
- 運行結果:
3.4 多態的弊端
弊端:不能使用子類特有的功能
解決問題:把父類的引用強制轉換為子類的引用。(向下轉型)
Zi zi = (Zi) father; // 向下轉型,把父類引用轉成子類引用。
4. 抽象類
4.1 定義
抽象類:不在一個類中給出具體體現,而只是給出一個聲明。
4.2 抽象類特點
- 抽象類和抽象方法必須用abstract關鍵字修飾
抽象類格式: abstract class 類名 {}
抽象方法格式: public abstract void eat() - 抽象類不一定有抽象方法,有抽象方法的類一定是抽象類
- 抽象類中可以有構造方法,抽象類不能進行實例化,構造方法用于子類訪問父類數據時的初始化。
- 抽象類不能直接實例化,抽象類按照多態的方式,由具體的子類實例化。
- 抽象類的子類,要么是抽象類,要么重寫抽象類中的所有抽象方法。
4.3 abstract關鍵字
- abstract和private矛盾,因為abstract 強制子類重寫,而private 限定后又無法重寫。
- abstract和final矛盾,因為abstract強制子類重寫,而final 重寫不了。
- abstract和static矛盾,因為static修飾的方法有具體的實現,而abstract修飾的方法沒有具體的實現。
4.4 抽象類的成員特點
- 成員變量:既可以是變量,也可以是常量。
- 構造方法:有。用于子類訪問父類數據的初始化。
- 成員方法:既可以是抽象的,也可以是非抽象的。
4.5 抽象類和普通類區別
- 抽象類與普通類的唯一區別就是不能創建實例對象和允許有 abstract 方法。
5. 接口
5.1 定義
- 接口來定義一些事物的額外功能,但并不給出具體實現,由接口的子類重寫方法體來具體實現額外功能。
- 接口用關鍵字interface表示 格式: interface 接口名 {}
- 類實現接口用implements表示 格式: class 類名 implements 接口名 {}
5.2 成員特點
- 成員變量:只能是常量,并且是靜態的。默認修飾符:public static final
- 構造方法:接口沒有構造方法。
- 成員方法:只能是抽象方法。默認修飾符:public abstract
5.3 類和接口的關系
- 類與類:繼承關系,只能單繼承,可以多層繼承。
- 類與接口:實現關系,可以單實現,也可以多實現。并且還可以在繼承一個類的同時實現多個接口。
- 接口與接口:繼承關系,可以單繼承,也可以多繼承。
實例
-
接口的子類和測試類代碼
-
接口代碼
-
運行結果
6. 感想
第一次跟著大班上課,雖然有些基礎的知識點還是沒有完全掌握,但是整體的學習氛圍還是挺好的,爭取課下把前面缺少的知識點盡快補回來,再接再厲吧!
總結
以上是生活随笔為你收集整理的JavaSE(四)——方法重写、多态、接口的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JavaSE(三)——数组及继承
- 下一篇: JavaSE(五)——修饰符、内部类、匿