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 明確兩者聯絡的橋梁,也就是觸發跳轉...