瞭解下C# 介面(Interface)
導讀 | 介面定義了所有類繼承介面時應遵循的語法合同。介面定義了語法合同 "是什麼" 部分,派生類定義了語法合同 "怎麼做" 部分。 |
介面定義了屬性、方法和事件,這些都是介面的成員。介面只包含了成員的宣告。成員的定義是派生類的責任。介面提供了派生類應遵循的標準結構。
介面使得實現介面的類或結構在形式上保持一致。
抽象類在某種程度上與介面類似,但是,它們大多隻是用在當只有少數方法由基類宣告由派生類實現時。
介面本身並不實現任何功能,它只是和宣告實現該介面的物件訂立一個必須實現哪些行為的契約。
抽象類不能直接例項化,但允許派生出具體的,具有實際功能的類。
介面使用 interface 關鍵字宣告,它與類的宣告類似。介面宣告預設是 public 的。下面是一個介面宣告的例項:
interface IMyInterface { void MethodToImplement(); }
以上程式碼定義了介面 IMyInterface。通常介面 以 I 字母開頭,這個介面只有一個方法 MethodToImplement(),沒有引數和返回值,當然我們可以按照需求設定引數和返回值。
值得注意的是,該方法並沒有具體的實現。
接下來我們來實現以上介面:InterfaceImplementer.cs
例項
using System; interface IMyInterface { // 介面成員 void MethodToImplement(); } class InterfaceImplementer : IMyInterface { static void Main() { InterfaceImplementer iImp = new InterfaceImplementer(); iImp.MethodToImplement(); } public void MethodToImplement() { Console.WriteLine("MethodToImplement() called."); } }
InterfaceImplementer 類實現了 IMyInterface 介面,介面的實現與類的繼承語法格式類似:
class InterfaceImplementer : IMyInterface
繼承介面後,我們需要實現介面的方法 MethodToImplement() , 方法名必須與介面定義的方法名一致。
以下例項定義了兩個介面 IMyInterface 和 IParentInterface。
如果一個介面繼承其他介面,那麼實現類或結構就需要實現所有介面的成員。
以下例項 IMyInterface 繼承了 IParentInterface 介面,因此介面實現類必須實現 MethodToImplement() 和 ParentInterfaceMethod() 方法:
例項
using System; interface IParentInterface { void ParentInterfaceMethod(); } interface IMyInterface : IParentInterface { void MethodToImplement(); } class InterfaceImplementer : IMyInterface { static void Main() { InterfaceImplementer iImp = new InterfaceImplementer(); iImp.MethodToImplement(); iImp.ParentInterfaceMethod(); } public void MethodToImplement() { Console.WriteLine("MethodToImplement() called."); } public void ParentInterfaceMethod() { Console.WriteLine("ParentInterfaceMethod() called."); } }
例項輸出結果為:
MethodToImplement() called. ParentInterfaceMethod() called.
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2888433/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 瞭解下C# 變數C#變數
- 瞭解下C# 事件(Event)C#事件
- 瞭解下C# 繼承C#繼承
- 瞭解下C# 類(Class)C#
- 瞭解下C# 字串(String)C#字串
- 瞭解下C# 運算子C#
- 瞭解下C# 迴圈C#
- 瞭解下C# 判斷C#
- 瞭解下C# 陣列(Array)C#陣列
- 瞭解下C# 索引器(Indexer)C#索引Index
- 瞭解下C# 屬性(Property)C#
- 瞭解下C# 委託(Delegate)C#
- 瞭解下C# 程式結構C#
- 瞭解下C# 運算子過載C#
- 瞭解下C# 型別轉換C#型別
- 瞭解下C# 資料型別C#資料型別
- 瞭解下C# 異常處理C#
- 瞭解下C# 正規表示式C#
- 瞭解下C# 多執行緒C#執行緒
- 瞭解下C# 結構體(Struct)C#結構體Struct
- 瞭解下C# 前處理器指令C#
- 瞭解下C# 名稱空間(Namespace)C#namespace
- 瞭解下C# 可空型別(Nullable)C#型別Null
- 瞭解下C# 不安全程式碼C#
- 藉助 zope.interface 深入瞭解 Python 介面Python
- interface/介面
- 瞭解下C# 檔案的輸入與輸出C#
- 瞭解下Foundation JoyrideIDE
- 瞭解下RSS 元素
- 瞭解下Foundation 表格
- 瞭解下WSDL 埠
- 大致瞭解下websocketWeb
- Laravel bootstraper 瞭解下Laravelboot
- public interface View介面和public interface ViewResolver介面介紹View
- firewalld: 介面interface操作
- 如何理解 interface 介面
- Java-介面(interface)Java
- 瞭解下Foundation 按鈕