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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

java的多态怎么理解_JAVA多态的理解

發布時間:2024/9/27 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java的多态怎么理解_JAVA多态的理解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

面向對象的三大特性:封裝、繼承、多態,其中最難理解的就是多態

以下是網上某大神給的一個例子:

1.繼承關系

class?A?{

public?String?show(D?obj){

return?("A?and?D");

}

public?String?show(A?obj){

return?("A?and?A");

}

}

class?B?extends?A?{

public?String?show(B?obj){

return?("B?and?B");

}

public?String?show(A?obj){

return?("B?and?A");

}

}

class?C?extends?B?{}

class?D?extends?B?{}

2. 測試

public?class?Test?{

public?static?void?main(String[]?args)?{

A?a1?=?new?A();

A?a2?=?new?B();

B?b?=?new?B();

C?c?=?new?C();

D?d?=?new?D();

System.out.println(a1.show(b));????//1

System.out.println(a1.show(c));????//2

System.out.println(a1.show(d));????//3

System.out.println(a2.show(b));????//4

System.out.println(a2.show(c));????//5

System.out.println(a2.show(d));????//6

System.out.println(b.show(b));????//7

System.out.println(b.show(c));????//8

System.out.println(b.show(d));????//9

}

}

3. 輸出結果

A?and?A????//1

A?and?A????//2

A?and?D????//3

B?and?A????//4,這是要理解的重點

B?and?A????//5,這是要理解的重點

A?and?D????//6

B?and?B????//7

B?and?B????//8

A?and?D????//9

4. 理解

class?A{}

class?B?extends?A{}

A?a?=?new?B();

/*

*?1.?上面的結果是產生了一個?A?類對象,雖然實際上傳遞過來的是?B?類對象(向上轉型)

*?2.?此時?a?只能調用?A?類中的方法,而看不到B類中的【特有】方法

*?3.?如果?B?中復寫了?A?類中的某些方法,那么此時?a?能調用到的都是被復寫的方法

*

*?形象一點就是?B?偷偷換了?A?中的一些方法,此時的?a?并不知道!

*/

總結

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

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