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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DYA9面向对象中--多态

發布時間:2023/12/20 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DYA9面向对象中--多态 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

多態(polymorphic)

?

多態可以提高代碼的復用性,利于代碼維護

方法或對象具有多種形態。是面向對象的第三大特征,多態是建立再封裝和繼承基礎之上的

1,方法的多態

重寫和重載就體現多態

?

2,對象的多態(核心)

***1,一個對象的編譯類型和運行類型可以不一致***

***2,編譯類型在定義對象時,就確定了,不能改變***

***3,運行類型是可以變化的***

***4,編譯類型看定義時 = 號的左邊, 運行類型看 = 號的右邊***

?

使用多態機制,可以統一的管理主人喂食的問題

public void feed(Animal animal , Food food)

{

}

?

用父類,可以指向(接收)子類創建對象傳入的數據,無需每個子類定義一個方法(傳入單個子類對象),直接用父類的編譯類型即可

多態注意事項和細節

多態的前提是:兩個對象(類)存在繼承關系

多態的向上轉型:

1,本質:父類的引用指向了子類的對象

2,語法:父類類型 引用名 = new 子類類型();

3,特點:編譯類型看左邊,運行類型看右邊。

可以調用父類中的所有成員(需遵守訪問權限);

不能調用子類中特有成員;

最終運行效果看子類的具體實現!

structure結構

多態的向下轉型:

1,語法:子類類型 引用名 = (子類類型) 父類引用;

2,只能強轉父類的引用,不能強轉父類的對象

3,要求父類的引用必須指向的是 當前目標類型的對象

4,當向下轉型后,可以調用子類類型中所有的成員

屬性沒有重寫之說!屬性的值直接看編譯類型

instanceOf 比較操作符,用于 判斷對象的類型是否為XX類型或XX類型的子類型(判斷的是對象的運行類型)

Java重要特性:動態(dynamic)綁定機制

1,當調用對象方法的時候,該方法會和該對象的內存地址(運行類型)綁定

2,當調用對象屬性時,沒有動態綁定機制,哪里聲明,哪里使用

多態的應用

1,多態數組

數組的定義類型為父類類型,里面保存的實際元素類型為子類類型

?

?

?

多態參數

方法定義的形參類型為父類類型,實參類型允許為子類類型

?

總結

以上是生活随笔為你收集整理的DYA9面向对象中--多态的全部內容,希望文章能夠幫你解決所遇到的問題。

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