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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

java基础之多态的详细解释_JAVA基础之多态

發布時間:2023/12/15 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java基础之多态的详细解释_JAVA基础之多态 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

下面我為大家講解一下JAVA基礎之多態,希望大家喜歡。

多態就是事物存在的多種形態,比如你在大街上看見一只藏獒,你可以說這只藏獒真兇猛,也可以說這只狗真兇猛,還可以說這個動物真兇猛,以上三種說法其實都是指的這只藏獒。

在Java里面,也是存在多態的,只要全部符合下面這三種情況,就是多態

有繼承

有方法重寫

有父類引用指向子類對象

例如下面代碼就構成多態

定義一個Animal類

定義一個Cat類繼承Animal

定義一個Dog類繼承Animal

上面的三個類里面已經有繼承和方法重寫了,那么父類引用指向子類對象是什么?請看下面這段代碼:

定義一個測試類

靜態綁定和動態綁定

上面代碼中,a1是Animal類型的一個引用,指向的是其子類Cat的對象,這個就叫做父類引用指向子類對象。程序在編譯的時候a1被看做Animal類型,所以a1.eat()綁定的是Animal類中的eat()方法,這叫做靜態綁定,程序運行時,a1指向的是堆中的Cat對象,而在Cat中對eat()方法進行了重寫,所以在運行階段綁定的是Cat中的eat()方法,這叫做動態綁定。

強制類型轉換

上面代碼中子類向父類型進行轉換,是自動類型轉換,也叫做向上轉型。還有一種情況是父類向子類型轉換,是強制類型轉換,也叫向下轉型。下面的代碼演示了強制類型轉換

instanceof關鍵字

上面的代碼里面將一個指向Dog對象的Animal引用a2進行強制轉換成Cat類型時報出了ClassCastException類轉型錯誤,開發中要是想避免這種錯誤需要使用instanceof來判斷一下。

多態的優點

提高了程序的擴展性

降低了代碼之間的耦合

請看下面示例:

新建一個Car類

創建一個Benz類繼承Car

創建一個BMW類繼承Car

創建一個Person類用來開車

創建一個測試類

在工作當中盡量面向抽象編程,不要面向具體編程。

此上就是我對多態的詳細解釋,感謝大家喜歡。希望大家多多糾錯。

總結

以上是生活随笔為你收集整理的java基础之多态的详细解释_JAVA基础之多态的全部內容,希望文章能夠幫你解決所遇到的問題。

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