日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

JavaSE(四)——方法重写、多态、接口

發布時間:2025/3/13 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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(四)——方法重写、多态、接口的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。