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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java多态 覆盖_Java ------ 继承、方法覆盖、多态

發布時間:2025/3/15 java 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java多态 覆盖_Java ------ 继承、方法覆盖、多态 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、什么是繼承

面向對象的三大特性: 封裝、 繼承、多態;

繼承就是子類型將父類型的的屬性繼承到自己類中進行使用,通過繼承的方式子類型可以使用父類型的屬性和方法,并且,繼承只能單重繼承,無法多繼承,但可以間接繼承;

的概念和作用

繼承其實不只是單單只有這些作用,其實它是一種前置條件,只有有了繼承,才有后面的方法覆蓋與多態;

繼承的注意事項: 子類無法繼承父類的私有屬性;

父類型構造方法無法被繼承;

二、什么是方法覆蓋

所謂的方法覆蓋 就是當父類型中的方法無法滿足子類型的時候,通過不修改父類型方法,只在子類型中進行重寫繼承過來的方法,以達到滿足程序要求;

1 public classTest24 {2 public static voidmain(String[] args) {3

4 Dog d = newDog();5 d.move();6 //output result: 狗在跑步7 //d.move() 的運行步驟是 d 引用調用 Dog 中的重寫過后的方法

8 }9 }10

11 class Dog extendsDongWu{12

13 public voidmove(){14 System.out.println("狗在跑步");15 }16 //當對父類型的方法進行重寫時,其子類型中的重寫方法,其 返回值類型,方法名,形參要全部一致相同,如果有不同的地方,將不構成方法的重載

17

18 }19

20 classDongWu{21

22 private voidmove(){23 System.out.println("DongWu 在移動!");24 }25 }

View Code

方法覆蓋的注意事項: 1、進行覆蓋的方法其修飾符級別不能低于父類型的修飾符級別;

2、構造方法無法被覆蓋

3、靜態方法不存在覆蓋

4、覆蓋只針對方法,不針對屬性

5、拋出異常只能比父類型少,不能比父類型多

三、什么是多態

多態是一種通過繼承的方式來達到程序解耦合的結構方式;

在基本數據類型中,有學到過數據類型轉換功能,其實在類與類之間也有類型轉換,當然只有兩個類或多個類有繼承關系的情況下,才有類型轉換,轉換形式有兩種:

—— 子類指向父類: 自動類型轉換,且稱為向上轉型;

—— 父類指向子類: 強制類型轉換,且稱為向下轉型;

1 public classTest23 {2

3 public static voidmain(String[] args) {4

5 Animal a = new Tiger(); //多態6 //子類型指向父類型 ,自動類型轉換,向上轉型

7 a.move();8

9 //Tiger i = (Tiger) a; 語法編譯都正常,但是會出現運行異常:父類型有可能指向錯誤,解決方案

10

11 if(a instanceofTiger) {12 Tiger i = (Tiger) a; //多態13 //父類型指向子類型,強制類型轉換,向下轉型

14 i.move();15 }16 }17 }18

19 classAnimal{20

21 public voidmove() {22

23 }24 }25

26 class Tiger extendsAnimal{27

28 public voidmove() {29 System.out.println("老虎在散步");30 }31 }32

33 class Lion extendsAnimal{34

35 public voidmove() {36 System.out.println("老虎在跑步");37 }38 }

View Code

在該程序中出現了一個新的關鍵字 instanceof? ----------------->?它的作用是測試它左邊的對象是否指向它右邊的類的實例,返回boolean類型的數據;這樣做的好處是判斷兩個類的指向,避免運行異常;

四、為什么使用多態,多態的作用是什么

前面提到多態有解耦合的功能,將它運用在程序當中,可以是程序的耦合度更松散,使程序的可擴展性更強;

1 public classTest22 {2

3 public static voidmain(String[] args) {4

5 Host zhangsan = newHost();6

7 Dog erHa = newDog();8

9 zhangsan.feed(erHa);10 }11

12 }13

14 classHost{15

16 public voidfeed(Pet pet) {17 pet.eat();18 }19 }20

21 classPet{22

23 public voideat() {24

25 }26 }27

28 class Dog extendsPet{29

30 //方法的繼承與覆蓋31 //方法覆蓋: 修飾符不大于,返回值不變,方法名不變,形參不變

32 public voideat() {33 System.out.println("狗吃骨頭");34 }35 }36

37 class Cat extendsPet{38

39 //方法的繼承與覆蓋

40 public voideat() {41 System.out.println("貓吃魚");42 }43 }

多態的功能性

多態的作用就是減少類與類之間的相關聯,在類與類的繼承過程中,提供一個抽象類,并將子類將抽象類作為父類 ,使它成為一個與原父類的接口, 達到剝離原父類的目的;在原父類在調用子類時,可以通過接口進行去調用,并可以達到子類與原父類不相關的目的,提高擴展性。

總結

以上是生活随笔為你收集整理的java多态 覆盖_Java ------ 继承、方法覆盖、多态的全部內容,希望文章能夠幫你解決所遇到的問題。

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