您現在的位置是:電腦技術吧?>? 組裝維修 ??>??2c,8c??>??正文詳情

2c,8c

僑靜逸2019-12-08 17:42:28 人圍觀
簡介1c抽象類和接口是面向對象編程中的兩個概念,但是研究編程多年的程序員有時并沒有明確的區別。下面解釋抽象類和接口的概念和區別。抽象類c點

abstract(抽象)類和interface(接口)是面向對象編程中兩個概念,但是學了很多年編程的程序員有時對這兩個概念的區分仍然不是很清楚。

下面就講解abstract類和interface的概念和區別。

  abstract(抽象)類  抽象方法只作聲明,而不包含實現,可以看成是沒有實現體的虛方法。

  抽象類不能被實例化。

  抽象類可以但不是必須有抽象屬性和抽象方法,但是一旦有了抽象方法,就一定要把這個類聲明為抽象類。

  具體派生類必須覆蓋基類的抽象方法。

  抽象派生類可以覆蓋基類的抽象方法,也可以不覆蓋。

如果不覆蓋,則其具體派生類必須覆蓋它們。

  下面的代碼講解了abstract(抽象)類的使用方法。

  using System;  public abstract class A //抽象類A  {  private int num = 0;  public int Num //抽象類包含屬性  {  get  {  return num;  }  set  {  num = value;  }  }  public virtual int getNum() //抽象類包含虛方法  {  return num;  }  public void setNum(int n) // //抽象類包含普通方法  {  this.num = n;  }  public abstract void E(); //類A中的抽象方法E  }  public abstract class B : A //由于類B繼承了類A中的抽象方法E,所以類B也變成了抽象類  {  }  public class C : B  {  public override void E() //重寫從類A繼承的抽象方法。

如果類B自己還定義了抽象方法,也必須重寫  {  //throw new Exception(The method or operation is not implemented.);  }  }  public class Test  {  static void Main()  {  C c = new C();  c.E();  }  }  interface(接口)  接口不能被實例化。

  接口只能包含方法聲明。

  接口的成員包括方法、屬性、索引器、事件。

  接口中的所有成員默認為public,因此接口中不能有private修飾符。

  派生類必須實現接口的所有成員。

  一個類可以直接實現多個接口,接口之間用逗號隔開。

  一個接口可以有多個父接口,實現該接口的類必須實現所有父接口中的所有成員。

  接口中不能包含常量、字段(域)、構造函數、析構函數、靜態成員。

  下面的代碼講解了interface(接口)的使用方法。

  public delegate void EventHandler(ob ject sender, Event e);  public interface ITest  {  //int x = 0;  int A  {  get;  set;  }  void Test();  event EventHandler Event;  int this[int index]  {  get;  set;  }  }  抽象類和接口的相同點和區別  相同點  都可以被繼承  都不能被實例化  都可以包含方法聲明  派生類必須實現未實現的方法  區別  抽象基類可以定義字段、屬性、方法實現。

接口只能定義屬性、索引器、事件、和方法聲明,不能包含字段。

  抽象類是一個不完整的類,需要進一步細化,而接口是一個行為規范。

  接口可以被多重實現,抽象類只能被單一繼承。

  抽象類更多的是定義在一系列緊密相關的類間,而接口大多數是關系疏松但都實現某一功能的類中。

  抽象類是從一系列相關對象中抽象出來的概念, 因此反映的是事物的內部共性;接口是為了滿足外部調用而定義的一個功能約定, 因此反映的是事物的外部特性。

  接口基本上不具備繼承的任何具體特點,它僅僅承諾了能夠調用的方法。

  接口可以用于支持回調,而繼承并不具備這個特點。

  抽象類實現的具體方法默認為虛的,但實現接口的類中的接口方法卻默認為非虛的,當然您也可以聲明為虛的 。

  如果抽象類實現接口,則可以把接口中方法映射到抽象類中作為抽象方法而不必實現,而在抽象類的子類中實現接口中方法。

  abstract類和interface使用規則  抽象類主要用于關系密切的對象,而接口最適合為不相關的類提供通用功能。

  如果要設計大的功能單元,則使用抽象類;如果要設計小而簡練的功能塊,則使用接口。

  如果預計要創建組件的多個版本,則創建抽象類。

接口一旦創建就不能更改。

如果需要接口的新版本,必須創建一個全新的接口。

  如果創建的功能將在大范圍的全異對象間使用,則使用接口;如果要在組件的所有實現間提供通用的已實現功能,則使用抽象類。

  分析對象,提煉內部共性形成抽象類,用以表示對象本質,即是什么。

為外部提供調用或功能需要擴充時優先使用接口。

  好的接口定義應該是具有專一功能性的,而不是多功能的,否則造成接口污染。

如果一個類只是實現了這個接口的中一個功能,而不得不去實現接口中的其他方法,就叫接口污染。

  盡量避免使用繼承來實現組建功能,而是使用黑箱復用,即對象組合。

因為繼承的層次增多,造成最直接的后果就是當你調用這個類群中某一類,就必須把他們全部加載到棧中!后果可想而知。

(結合堆棧原理理解)。

同時,有心的朋友可以留意到微軟在構建一個類時,很多時候用到了對象組合的方法。

比如 asp.net中,Page類,有Server Request等屬性,但其實他們都是某個類的對象。

使用Page類的這個對象來調用另外的類的方法和屬性,這個是非常基本的一個設計原則。

版權聲明:本文由 僑靜逸 整理編輯。

原標題:做c,a.c

轉載注明出處:http://www.dn9ww09s.icu/assemble/15252.html

文章評論

    共有條評論來說兩句吧...

    用戶名:

    驗證碼:

作者推薦

  • 2~7長度的中英文字符是多少,中英文字符

    2~7長度的中英文字符是多少,中英文字符 相關圖片中英文字符的名字函數strleng(str)ON ERROR RESUME NEXT dim WINNT_CHINESE WINNT_CHINESE=(len(論壇)=2)如W2到7位的中文字符或字母...

  • 溫馨提示的意義,月度總結的目的和意義

    溫馨提示的意義,月度總結的目的和意義 相關圖片理論提示有哪些方法Microsoft VBScript語法錯誤(0800a03e9)>內存不足Microsoft VBScript語法錯誤(0800a03ea)>語法錯誤Micr對甲亢有提示意義的...

  • EXIF信息,信息

    EXIF信息,信息 相關圖片android 圖片框架什么是EXIF?首先讓我們了解什么是EXIF。EXIF是一種圖像文件格式。它以JPEG格式存儲的數據完全相同。實際上,EXIF格式是JPEG格式,頭部插入數字照android長圖片處理...

  • 一鍵備份還原,電腦備份怎么還原

    一鍵備份還原,電腦備份怎么還原 相關圖片手機備份還原導入和導出涉及兩個命令:source和MySQL dump:1。導入:輸入MySQL命令行,輸入任何要導入的數據庫,然后導入。具體命令如下:進入windows的ghost備份還原...

  • mysql query,mysql_query失敗

    mysql query,mysql_query失敗 相關圖片mysql_query返回值PHP MySQL data seek()函數定義并使用MySQL data seek()函數將指針移動到內部結果。syntax MySQL[data]seeksql query...

  • 復雜對象,對象與別人關系復雜的說說

    復雜對象,對象與別人關系復雜的說說 相關圖片get請求傳遞復雜對象介紹了Aidl傳輸復雜類型對象的特殊處理方法。通過進程間的Aidl接口傳輸系統允許的數據并不容易。如果需要傳輸復雜類型的對象,則需要進行一些額外的處理。如下...

  • excel編程有什么用,excel編程可以做什么

    excel編程有什么用,excel編程可以做什么 相關圖片excel編程語言Excel是一個優秀的電子表格軟件。如果您的程序需要以報告的形式顯示最終結果,這將是一個不錯的選擇。通過VB可以控制Excel顯示數據表。如果不想了解更多有關Eexcel編程計...

  • ASP,ASP是啥

    ASP,ASP是啥 相關圖片ASP技術方法如下:程序代碼%dim arr:set arr=new arraylistarr.add A:arr.add B:arr.add cressponse.wrASP模式...

  • Android多線程,Android開發多線程

    Android多線程,Android開發多線程 相關圖片android多線程同步Asynctask Asynctask是一個異步任務,可以執行簡單的異步操作,并將執行結果發布到UI主線程。Asynctask是一個抽象類。實際上,它結合了線程android多線程下載...

  • windows10安裝,win7安裝

    windows10安裝,win7安裝 相關圖片win7系統安裝使用自動安裝程序自動安裝MySQL新MySQL 5.0用戶可以使用MySQL安裝向導和MySQL配置向導在windows上安裝MySQL。這兩個向導的目的是方便怎么安裝win7系統...

熱評文章

  • XXLive,X-

    XXLive,X- 相關圖片x y這個例子運行在MySQL 5.0和更高版本上。MySQL給用戶權限命令的簡單格式可以概括為:向用戶1授予對數據庫對象的權限,向普通數據用戶授予查詢、插入、更新和e^x...

  • wps默認保存路徑在哪,cad默認保存路徑

    wps默認保存路徑在哪,cad默認保存路徑 相關圖片保存修改相機照片默認保存路徑的方法是打開storage.java到:public static void updatedefaultdirectory(activiQQ下載文件保存位置...

  • 手勢識別,手勢識別的應用

    手勢識別,手勢識別的應用 相關圖片手勢有什么用簡單的手勢功能(左、右滑動屏幕)在項目中使用,因此下一個import android.content.context;import android.util.d手勢...

  • 讓控件不可被點擊,要使某控件在運行時不可見

    讓控件不可被點擊,要使某控件在運行時不可見 相關圖片要在垂直位置上移動控件在做VB項目時,每個人都會遇到這個問題。在VB中添加控件時,請瀏覽工程部件。添加所需零件時,會彈出一個對話框*。無法將OCX注冊為ActiveX控件。此時,您可...

  • access程序,access 編程

    access程序,access 編程 相關圖片access程序設計Dim conn Sub DBOpen()Dim db:db=Server.MapPath(zzz.mdb)在錯誤恢復時設置conn=Server.Createaccess數據庫設計程序...

  • printf 輸出到logcat,logcat輸出級別

    printf 輸出到logcat,logcat輸出級別 相關圖片logcat命令用法性能問題:手機與電腦連接后,驅動程序安裝正確,USB調試模式開啟,DDMS中可以看到設備及其進程信息,但logcat中沒有信息輸出。原因是一些rom默認關閉lo保存logcat...

  • 2c,8c

    2c,8c 相關圖片1c這個類適用于比較兩個字符的相似性。代碼如下:?使用系統;使用系統。收藏。通用的;使用系統的。文本;公共類stringcomputec點...

  • 錯誤,打印狀態錯誤怎么解決

    錯誤,打印狀態錯誤怎么解決 相關圖片網絡錯誤癥狀:系統日志文件(控制面板管理工具系統日志)可以找到以下兩個錯誤:17052:無法恢復主數據庫。退出。18052:錯誤:9003,嚴重性:20,狀態:1。解決錯誤代碼...

  • selectcase怎么用,select case

    selectcase怎么用,select case 相關圖片select case結構如果語句選擇報表,則工作原理相同。但是,區別在于它們可以檢查多個值。當然,如果。。。其他的說法,但這并不總是最好的方法。select語句允許程序計算表達式,并嘗...

  • 交互開發,小程序開發交互

    交互開發,小程序開發交互 相關圖片javaweb交互系統開發教程一。基本知識:1。意圖對象包含一組信息:1。組件名稱指定要啟動的活動2。做什么動作3。數據傳輸4。第5類。附加鍵值對前端數據交互...

關注微信

变脸官网查询