C#抽象類與接口

一、定義

抽象類:抽象類往往用來表徵對問題領域進行分析,設計中得出的抽象概念,是對一系列看上去不同,但是本質上相同的具體的概念的抽象,在編程語言中通常用abstract修飾的類。抽象類是不完整的,它只能用作基類。在面向對象方法中,抽象類主要用來進行類型隱藏和充當全局變量的角色。在面向對象的概念中,所有的對象都是通過類來描繪的,但是反過來,並不是所有的類都是用來描繪對象的,如果一個類中沒有包含足夠的信息來描繪一個具體的對象,這樣的類就是抽象類。在這裏插入圖片描述

接口:接口(硬件類接口)是指同一計算機不同功能層之間的通信規則稱爲接口。接口(軟件類接口)是指對協定進行定義的引用類型。其他類型實現接口,以保證它們支持某些操作。接口指定必須有類提供的成員或實現它的其他接口,與對象類似,接口可以包含方法,屬性,索引器和事件作爲成員。C#中接口是一種約束形式,其中只包括成員定義,不包含成員實現的內容。接口的主要目的是爲不相關的類提供通用的處理服務,由於C#中只允許樹形結構中的單繼承,即一個類只能繼承一個父類,所以接口是讓一個雷具有兩個以上基類的方式。interface聲明。
在這裏插入圖片描述

二、異同
相同:
1、都不能直接實例化,都可以通過繼承實現其抽象方法
2、包含未實現的方法聲明
3、派生類必須實現未實現的方法,抽象類是抽象方法,接口則是所有成員(不僅是方法包括其他成員)

不相同:
1、接口支持多繼承;抽象類不能實現多繼承。
2、接口只能定義行爲;抽象類既可以定義行爲,還可以提供實現。
3、接口可以用於支持回調(callback);抽象類不能實現回調,因爲繼承不支持。
4、接口只包含方法(Method)、屬性(Property)、索引器(Index)、事件(Event)的簽名,但不能定義字段和包含實現的方法;
抽象類可以定義字段、屬性、包含有實現的方法。
5.接口可以作用於值類型(Struct)和引用類型(Class);抽象類只能作用於引用類型。

三、補充
在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章