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

歡迎訪問 生活随笔!

生活随笔

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

java

Java中关于多态的理解

發布時間:2024/3/24 java 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java中关于多态的理解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Java中多態的理解
JAVA中的多態可以簡單的理解為一種事物的多種形態,當然多態是在繼承的基礎上有重寫才存在。(因為這篇文章是轉載過來的,大部分地方持支持的態度,但也有一些地方存在個人態度,比如這里,我認為接口實現也算存在多態)。

如何理解一種事物的多種形態?
舉個例子,拿人類、男人、女人來說。男人、女人、都分別繼承了人類!
人類有鼻子、眼睛、嘴巴、男人或者女人都有。
人類會吃飯,會睡覺,會散步,男人或者女人都會。
但是在男人和女人都有自己獨特的一些技能。比如說男人大多數力氣很大。女人大多數都很漂亮。
以上是個前提。我們用代碼去實現一下。
下面是定義的People類

下面是定義的男人類:并重寫了People的eat和walk的方法,男人還有自己特有的方法為power

下面定義的是女人類:女人類也重寫了People的eat和walk的方法,并且女人有自己特有的方法beautiful

當我們在Main方法中去聲明People類:people對象可以調用People類中的已經聲明的方法和屬性,這個不需要解釋。如下圖所示:

我們可以用創建一個父類的引用,用一個子類的對象去賦值。
創建父類的引用說白了就是構造一個父類的對象,在我們當前的邏輯中就是創建People的對象;
用一個子類的對象去賦值,就是可以用子類的對象去代替之前的new People();

因為Man類和Woman類都是繼承People類的,也就是說,當用到People的時候,我可以直接用People的子類進行替代。同理聲明Woman也是可以的:

這樣的聲明方式有一種特點,就是創建的對象p1能調用多少方法,看的是左邊的類,在People p1 = new Woman();中,p1能調用多少屬性和方法看的是左側的People類。如下圖所示:

可以調用出父類的一些屬性和方法,當我們調用eat()方法時候,運行:

我們發現運行的是Woman中的eat方法
我們改變一下Woman中的eat方法名字,從eat改為eatsss

重新執行p1.eat()
運行的就是父類中的方法:

給People類中增加一個屬性 int ID 并且賦值為1;

給 Woman類中也增加一個屬性 int ID =2;

在main函數中調用p1.ID并打印

結果為1

也就是說 這樣的情況下:People p1 = new Woman();
**調用的屬性看的是左邊的屬性,方法需要看一下是否是重寫的,因為你只能調用出People中的屬性和方法,如果是在右側的類中有重寫的同名方法,調用的就是它,如果沒有重寫的方法,調用的就是左側的類中的方法

還是借用上面的三個類來描述:
在main方法所在的類中,加入一個一個方法:

是一個People類,我們上面說了,任何父類出現的地方,我們都可以用子類來替代。
當我們調用下該方法:

這就是多態中的使用,傳入的對象調用那個具體的方法,還是要看是否有重寫,有重寫走子類重寫,沒有重寫走父類的方法。

注:本文章為轉載文章,表示博主同意文章出處的博主的觀點。希望各位大佬不吝賜告,改善文章不妥之處,以免誤人子弟,謝謝!

轉載于:https://blog.csdn.net/zhangguan96/article/details/123721254

總結

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

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