精通C Chapter8 介面 學習筆記

2021-07-16 02:42:52 字數 1620 閱讀 6091

1、介面可以進一步支援物件導向程式設計,介面其實是用來構建支援多種行為的類型別的。

2、.net基礎類庫中定義了很多標準介面,我們自定義的類和結構可以實現這些預定義的介面,從而使得我們自定義的類或結構也支援物件轉殖、物件列舉、物件排序等高階行為。

3、介面的定義:介面就是一組抽象成員的命名集合。介面成員總是抽象的,由每個類自己去實現這些方法。

介面可以被任何層次結構、任何命名空間、任何程式集中的任何類或結構來實現,介面具有較高的多型性。

4、自定義介面型別:

(1)所有的介面成員都是隱式公共的和抽象的;

(2)介面是純粹的協議,介面不能包含字段、建構函式、函式實現,函式實現留給支援它的類或結構去實現;介面可以包含

方法宣告、屬性、索引器、事件;

(3)實現介面是乙個「要麼全做要麼全部做」的命題,支援介面的類或結構不能選擇實現介面的哪些成員;

5、介面呼叫

(1)直接在支援該介面的類物件級別呼叫;

(2)直接利用介面呼叫;(或者將類物件顯示轉換成介面之後,再提取需要的介面使用)

eg:

static void main(string args)

", h.points);// 1、直接在支援該介面的類物件級別呼叫;

circle c = new circle();

// 強制轉換看結果

ipointy ip1 = null;

trycatch (invalidcastexception e)

// as語句

ipointy ip2 = h as ipointy;

if (ip2 != null)

",ip2.points);// 2、直接利用介面呼叫;

}else

// is語句

shape myshapes = new shape;

for (int i = 0; i < myshapes.length; i++)

",((ipointy)myshapes[i]).points);

}else}}

(3)如何判斷型別是否支援某個介面,有三種方法:強制轉換看結果、as語句、is語句;

6、介面作為引數:如果引數為介面,則任何支援該介面的類物件均可作為引數傳遞;

7、介面型別陣列:同上,可以儲存任何支援該介面的類物件;

8、顯示介面實現,用於何處?

乙個類可以支援多個介面,如果這些介面包含重名成員,這是就需要用到介面的顯示實現。如下例:

9、介面繼承:介面可以繼承,介面可進行多重繼承,即乙個介面可以繼承多個介面;

10、何時使用介面呢?

11、構建可列舉型別:類需支援ienumerable介面;

構建可轉殖型別:類需支援icloneable介面;

構建可比較型別:類需支援icomparable介面;

物件導向8(介面)

概念 使用inte ce修飾的 塊。語法 訪問修飾符 inte ce 介面名 訪問修飾符 暫時使用public inte ce 關鍵字,含義是介面。介面名 識別符號。介面成員 靜態常量,抽象方法。inte ce inter class method implements inter public c...

8 介面和內部類

1.定義介面裡面的方法只能是抽象方法 預設抽象方法 且沒有方法體。預設都是public abstract 2.乙個類可以實現多個介面 多繼承效果 3.多個類可以實現同乙個介面 4.介面裡面不能有建構函式,而且不能例項化。5實現乙個介面必須實現裡面所有的方法。6.介面裡面必須進行賦值例項,如int 1...

DAY8 介面通訊

day8 介面通訊 注意 延展中寫的東西只能在類內使用 pragma mark 屬性傳值 第乙個頁面往第二個頁面傳值 一 屬性傳值 第乙個頁面往第二個頁面傳值 屬性傳值 可以自定義屬性 也可使用控制項 檢視的自帶屬性 1 屬性傳值用於第乙個介面向第二個頁面傳值 2 明確兩者聯絡的橋梁,也就是觸發跳轉...