日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

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

發(fā)布時(shí)間:2025/3/13 java 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JavaSE(四)——方法重写、多态、接口 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

  • 1. 方法重寫
    • 1.1 定義
    • 1.2 重寫的注意事項(xiàng)
    • 1.3 實(shí)例
  • 2. final關(guān)鍵字
    • 2.1 定義
    • 2.2 修飾特點(diǎn)
  • 3. 多態(tài)
    • 3.1 定義
    • 3.2 多態(tài)前提
    • 3.3 成員訪問特點(diǎn)
      • 實(shí)例
    • 3.4 多態(tài)的弊端
  • 4. 抽象類
    • 4.1 定義
    • 4.2 抽象類特點(diǎn)
    • 4.3 abstract關(guān)鍵字
    • 4.4 抽象類的成員特點(diǎn)
    • 4.5 抽象類和普通類區(qū)別
  • 5. 接口
    • 5.1 定義
    • 5.2 成員特點(diǎn)
    • 5.3 類和接口的關(guān)系
      • 實(shí)例
  • 6. 感想

1. 方法重寫

1.1 定義

  • 子類對(duì)父類功能的實(shí)現(xiàn)不滿意,我想要根據(jù)自己的差異性,來進(jìn)行實(shí)現(xiàn),那子類就可以進(jìn)行方法重寫,去覆蓋掉父類中的方法,在實(shí)際調(diào)用中,以子類重寫的為準(zhǔn)。

1.2 重寫的注意事項(xiàng)

  • 父類私有的方法子類不能重寫,因?yàn)樗接械姆椒?#xff0c;子類都不能繼承,何談重寫。
  • 子類在重寫父類方法時(shí),子類方法前面的權(quán)限修飾符,不能比父類的低,要比父類的高,或一樣。權(quán)限修飾符:public>protected>缺省的>private
  • 構(gòu)造方法,沒有重寫這么一說,構(gòu)造方法不能重寫。
  • 靜態(tài)方法不參與重寫。

1.3 實(shí)例

  • 子類重寫fu類的show 方法(Ctrl+o)

2. final關(guān)鍵字

2.1 定義

  • final關(guān)鍵字是最終的意思,可以修飾類,變量,成員方法。由于繼承中有一個(gè)方法重寫的現(xiàn)象,而有時(shí)候不想讓子類去重寫父類的方法,這時(shí)就可使用關(guān)鍵字: final

2.2 修飾特點(diǎn)

  • final修飾特點(diǎn)
    修飾類: 被修飾類不能被繼承。
    修飾方法: 被修飾的方法不能被重寫。
    修飾變量: 被修飾的變量不能被重新賦值,因?yàn)檫@個(gè)量其實(shí)是一個(gè)常量。

3. 多態(tài)

3.1 定義

  • 某一個(gè)事物,在不同時(shí)刻表現(xiàn)出來的不同狀態(tài)。
    舉例: Cat c=new Cat();
    Animal a=new Cat();
    貓可以是貓的類型。同時(shí)貓也是動(dòng)物的一種,也可以把貓稱為動(dòng)物。

3.2 多態(tài)前提

  • 要有繼承關(guān)系。
  • 要有方法重寫。
  • 要有父類引用指向子類對(duì)象。父 f = new 子();

3.3 成員訪問特點(diǎn)

(1)成員變量 :編譯看左邊,運(yùn)行看左邊。
(2)構(gòu)造方法:創(chuàng)建子類對(duì)象的時(shí)候,會(huì)訪問父類的構(gòu)造方法,對(duì)父類的數(shù)據(jù) 進(jìn)行初始化。
(3)成員方法: 編譯看左邊,運(yùn)行看右邊。
(4)靜態(tài)方法:編譯看左邊,運(yùn)行看左邊。(靜態(tài)和類相關(guān),算不上重寫,所以,訪問還是左邊的)

實(shí)例

  • 父類、子類以及測(cè)試類代碼
  • 運(yùn)行結(jié)果:

3.4 多態(tài)的弊端

弊端:不能使用子類特有的功能
解決問題:把父類的引用強(qiáng)制轉(zhuǎn)換為子類的引用。(向下轉(zhuǎn)型)
Zi zi = (Zi) father; // 向下轉(zhuǎn)型,把父類引用轉(zhuǎn)成子類引用。

4. 抽象類

4.1 定義

抽象類:不在一個(gè)類中給出具體體現(xiàn),而只是給出一個(gè)聲明。

4.2 抽象類特點(diǎn)

  • 抽象類和抽象方法必須用abstract關(guān)鍵字修飾
    抽象類格式: abstract class 類名 {}
    抽象方法格式: public abstract void eat()
  • 抽象類不一定有抽象方法,有抽象方法的類一定是抽象類
  • 抽象類中可以有構(gòu)造方法,抽象類不能進(jìn)行實(shí)例化,構(gòu)造方法用于子類訪問父類數(shù)據(jù)時(shí)的初始化。
  • 抽象類不能直接實(shí)例化,抽象類按照多態(tài)的方式,由具體的子類實(shí)例化。
  • 抽象類的子類,要么是抽象類,要么重寫抽象類中的所有抽象方法。

4.3 abstract關(guān)鍵字

  • abstract和private矛盾,因?yàn)閍bstract 強(qiáng)制子類重寫,而private 限定后又無法重寫。
  • abstract和final矛盾,因?yàn)閍bstract強(qiáng)制子類重寫,而final 重寫不了。
  • abstract和static矛盾,因?yàn)閟tatic修飾的方法有具體的實(shí)現(xiàn),而abstract修飾的方法沒有具體的實(shí)現(xiàn)。

4.4 抽象類的成員特點(diǎn)

  • 成員變量:既可以是變量,也可以是常量。
  • 構(gòu)造方法:有。用于子類訪問父類數(shù)據(jù)的初始化。
  • 成員方法:既可以是抽象的,也可以是非抽象的。

4.5 抽象類和普通類區(qū)別

  • 抽象類與普通類的唯一區(qū)別就是不能創(chuàng)建實(shí)例對(duì)象和允許有 abstract 方法。

5. 接口

5.1 定義

  • 接口來定義一些事物的額外功能,但并不給出具體實(shí)現(xiàn),由接口的子類重寫方法體來具體實(shí)現(xiàn)額外功能。
  • 接口用關(guān)鍵字interface表示 格式: interface 接口名 {}
  • 類實(shí)現(xiàn)接口用implements表示 格式: class 類名 implements 接口名 {}

5.2 成員特點(diǎn)

  • 成員變量:只能是常量,并且是靜態(tài)的。默認(rèn)修飾符:public static final
  • 構(gòu)造方法:接口沒有構(gòu)造方法。
  • 成員方法:只能是抽象方法。默認(rèn)修飾符:public abstract

5.3 類和接口的關(guān)系

  • 類與類:繼承關(guān)系,只能單繼承,可以多層繼承。
  • 類與接口:實(shí)現(xiàn)關(guān)系,可以單實(shí)現(xiàn),也可以多實(shí)現(xiàn)。并且還可以在繼承一個(gè)類的同時(shí)實(shí)現(xiàn)多個(gè)接口。
  • 接口與接口:繼承關(guān)系,可以單繼承,也可以多繼承。

實(shí)例

  • 接口的子類和測(cè)試類代碼

  • 接口代碼

  • 運(yùn)行結(jié)果

6. 感想

第一次跟著大班上課,雖然有些基礎(chǔ)的知識(shí)點(diǎn)還是沒有完全掌握,但是整體的學(xué)習(xí)氛圍還是挺好的,爭(zhēng)取課下把前面缺少的知識(shí)點(diǎn)盡快補(bǔ)回來,再接再厲吧!

總結(jié)

以上是生活随笔為你收集整理的JavaSE(四)——方法重写、多态、接口的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。