成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

秒懂抽象類和接口到底是什么垃圾

新聞
這幾天給別人講JavaSE基礎,又把面向對象看了一遍,講的時候發現一個問題,就是當時講抽象類和接口的時候說接口也是抽象類,是個特殊的抽象類,當時聽的時候別人確實能聽懂,因為確實沒多少東西,但是真正用的時候總會猶豫,到底什么時候該用抽象類什么時候用接口呢?

  前言

這幾天給別人講JavaSE基礎,又把面向對象看了一遍,講的時候發現一個問題,就是當時講抽象類和接口的時候說接口也是抽象類,是個特殊的抽象類,當時聽的時候別人確實能聽懂,因為確實沒多少東西,但是真正用的時候總會猶豫,到底什么時候該用抽象類什么時候用接口呢?

  如何區分使用抽象類和接口

大家在比較抽象類和接口的區別時,一定要強調抽象類描述的是事物的本質,而接口描述的是事物的功能。比如:保溫杯是水杯,所以水杯應該設計為抽象類,保溫杯有保溫的功能,所以保溫應該設計為接口。

可理解為:

class 保溫杯 extends 水杯 implements 保溫

用實例說話 

  1. package 
  2.  zmldemo 
  3. //水杯抽象類 
  4. public 
  5.   
  6. abstract 
  7.   
  8. class 
  9.   
  10. Cup 
  11.   
  12.       
  13. String 
  14.  name 
  15. //水杯名稱 
  16.       
  17. String 
  18.  color 
  19. //水杯顏色 
  20.  
  21.      
  22. public 
  23.   
  24. Cup 
  25. () 
  26.   
  27.      
  28.  
  29.      
  30. public 
  31.   
  32. Cup 
  33. String 
  34.  name 
  35.   
  36. String 
  37.  color 
  38.   
  39.          
  40. this 
  41. name  
  42.  name 
  43.          
  44. this 
  45. color  
  46.  color 
  47.      
  48.      
  49. //水杯使用說明方法 
  50.      
  51. public 
  52.   
  53. abstract 
  54.   
  55. void 
  56.  useCup 
  57. (); 

 

  1. package 
  2.  zmldemo 
  3. //保溫接口 
  4. public 
  5.   
  6. interface 
  7.   
  8. BaoWen 
  9.   
  10.      
  11. //保溫方法 
  12.      
  13. public 
  14.   
  15. void 
  16.  baoWen 
  17. (); 

 

  1. package 
  2.  zmldemo 
  3. //刷牙杯 
  4. public 
  5.   
  6. class 
  7.   
  8. ShuaYaBei 
  9.   
  10. extends 
  11.   
  12. Cup 
  13.   
  14.      
  15. public 
  16.   
  17. ShuaYaBei 
  18. () 
  19.   
  20.      
  21.  
  22.      
  23. public 
  24.   
  25. ShuaYaBei 
  26. String 
  27.  name 
  28.   
  29. String 
  30.  color 
  31.   
  32.          
  33. super 
  34. name 
  35.  color 
  36. ); 
  37.      
  38.  
  39.      
  40. @Override 
  41.      
  42. public 
  43.   
  44. void 
  45.  useCup 
  46. () 
  47.   
  48.          
  49. System 
  50. out 
  51. println 
  52. "我是" 
  53. this 
  54. color 
  55. "的" 
  56. this 
  57. name 
  58. "," 
  59. "我是用來刷牙的" 
  60. ); 
  61.      

 

  1. package 
  2.  zmldemo 
  3. //保溫杯 
  4. public 
  5.   
  6. class 
  7.   
  8. BaoWenBei 
  9.   
  10. extends 
  11.   
  12. Cup 
  13.   
  14. implements 
  15.   
  16. BaoWen 
  17.  
  18.      
  19. public 
  20.   
  21. BaoWenBei 
  22. (){ 
  23.  
  24.      
  25.      
  26. public 
  27.   
  28. BaoWenBei 
  29. String 
  30.  name 
  31. String 
  32.  color 
  33. ){ 
  34.          
  35. super 
  36. name 
  37. color 
  38. ); 
  39.      
  40.  
  41.  
  42.      
  43. @Override 
  44.      
  45. public 
  46.   
  47. void 
  48.  useCup 
  49. () 
  50.   
  51.          
  52. System 
  53. out 
  54. println 
  55. "我是" 
  56. this 
  57. color 
  58. "的" 
  59. this 
  60. name 
  61. "," 
  62. "我是用來喝水的" 
  63. ); 
  64.      
  65.  
  66.      
  67. @Override 
  68.      
  69. public 
  70.   
  71. void 
  72.  baoWen 
  73. () 
  74.   
  75.          
  76. System 
  77. out 
  78. println 
  79. "我能對水杯里的水進行保溫" 
  80. ); 
  81.      

 

  1. package 
  2.  zmldemo 
  3.  
  4. public 
  5.   
  6. class 
  7.   
  8. CupTest 
  9.   
  10.      
  11. public 
  12.   
  13. static 
  14.   
  15. void 
  16.  main 
  17. String 
  18. [] 
  19.  args 
  20.   
  21.          
  22. ShuaYaBei 
  23.  shuaYaBei  
  24.   
  25. new 
  26.   
  27. ShuaYaBei 
  28. "刷牙杯" 
  29. "紅色" 
  30. ); 
  31.         shuaYaBei 
  32. useCup 
  33. (); 
  34.  
  35.          
  36. BaoWenBei 
  37.  baoWenBei  
  38.   
  39. new 
  40.   
  41. BaoWenBei 
  42. "保溫杯" 
  43. "金黃色" 
  44. ); 
  45.         baoWenBei 
  46. useCup 
  47. (); 
  48.         baoWenBei 
  49. baoWen 
  50. (); 
  51.  
  52.  
  53.      

運行結果: 

 

我想看到這,學過抽象類和接口的朋友應該能理解了,那本篇標題“抽象類和接口到底是什么垃圾——秒懂”對應的部分完成了,既然都說到這了,再來點延申。

話題延申

抽象類和接口能實例化對象嗎?

這個問題其實也有很多人糾結,我之前專門有過對這個問題在網上進行搜索查詢,看了好幾篇別人寫的博客,結果答案不一,理解各不相同,有的博客里的理解還有錯誤,容易對別人誤導,后來我自己查資料,用自己的理解寫了一篇博客《抽象類能實例化嗎?——口氣很強硬——“不能”(詳解)》,結果當然正如其名所示,是不能的,至于為何,里面有詳細的解釋,大家自行查閱,在這就不做補充了。

 

責任編輯:武曉燕 來源: 泰斗賢若如
相關推薦

2023-11-01 10:26:02

燈塔工廠數字化轉型

2009-08-14 15:42:11

什么是.NET接口.NET抽象類

2020-10-19 13:03:16

Java 8接口抽象類

2012-02-29 09:32:01

Java

2021-12-23 07:11:31

開發

2010-03-04 09:40:04

Java接口抽象類

2011-06-28 10:55:20

C#接口抽象類

2011-04-27 09:30:48

企業架構

2020-09-27 06:53:57

MavenCDNwrapper

2020-09-22 08:22:28

快充

2020-10-14 06:22:14

UWB技術感知

2010-11-01 01:25:36

Windows NT

2009-08-10 10:04:25

C#抽象類C#接口

2009-04-30 15:15:01

Java抽象類接口

2011-07-12 15:58:48

java抽象類接口

2009-07-30 18:36:00

C#接口C#抽象類

2012-09-03 09:58:09

2013-06-09 09:47:31

.NetPDBPDB文件

2021-09-03 09:12:09

Linux中斷軟件

2019-10-30 10:13:15

區塊鏈技術支付寶
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 天天av网 | 看av在线 | 日韩视频福利 | 国产精品伦一区二区三级视频 | 无码日韩精品一区二区免费 | 玖玖视频 | 黄网站免费观看 | 91精品国产综合久久久久久丝袜 | 九九久久国产 | 日本三级网址 | 日本高清精品 | 亚洲a毛片| 欧美二三区 | 午夜爽爽男女免费观看hd | 久久91精品国产 | 亚洲国产精品成人久久久 | 精品国产91乱码一区二区三区 | 在线国产一区二区 | 久久国产高清视频 | 国产综合久久 | 中文字幕人成人 | 欧美另类日韩 | 欧美中文字幕一区 | 亚洲一区中文字幕 | 精品自拍视频在线观看 | 天天干天天想 | 亚洲 中文 欧美 日韩 在线观看 | 日本一区二区视频 | 国产精品国产成人国产三级 | 中文字幕亚洲区 | 国产高清视频一区 | 中文字幕福利视频 | 亚洲第一免费播放区 | 亚洲成人在线免费 | 国产玖玖 | 91精品国产91久久综合桃花 | 久久精品色视频 | 亚洲精品乱码久久久久久蜜桃91 | 7777久久| 欧美国产91| 99re国产 |