博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 語法---7.接口interface
阅读量:4977 次
发布时间:2019-06-12

本文共 1570 字,大约阅读时间需要 5 分钟。

一,什麼是接口
  • 接口定义了所有类继承接口时应遵循的语法合同。接口定义了语法合同 "是什么" 部分
  • 接口定义了属性、方法和事件,这些都是接口的成员。接口只包含了成员的声明。成员的定义是派生类的责任。接口提供了派生类应遵循的标准结构。
  • 接口使得实现接口的类或结构在形式上保持一致。
二,接口特性
1.接口類似抽象類,不能直接實例化;接口中的方法都是抽象方法
2.接口不能 包含常量、字段、運算符、實例構造函數、析構函數或類型、不能包含靜態成員
3.接口成員是自動公開的,不能包含任何修飾符
4.接口自身可從多個接口繼承,類和結構可繼承多個接口,接口不能繼承類
三.接口的實現
接口的顯式實現:當類或結構要實現的是單個接口
接口的隱式實現:當類或結構繼承了多個接口且接口
//隱式實現  IReview rv = new ShopReview(); rv.GetReviews; ShopReview rv= new ShopReview();都能夠調用接口方法    public interface IReview    {        void GetReviews();    }    public class ShopReview : IReview    {        public void GetReviews() { }    }    //顯式實現 GetReviews 只能通過接口來訪問,不能通過類訪問  如IReview rv = new ShopReview(); rv.GetReviews;能夠訪問 ShopReview rv= new ShopReview();不能訪問    //可見顯式實現隱藏了代碼的實現,只能通過接口訪問而不是底層    public interface IReview    {        void GetReviews();    }    public class ShopReview : IReview    {        void IReview.GetReviews() { }       }

接口實例:

namespace ConsoleApplication1{    //公共接口    public interface IProgram    {        void Fun();              //接口成員    }    class Program : IProgram    {        void IProgram.Fun()        {            Console.WriteLine("hello");        }        static Main(string[] args)        {            IProgram p = new Program();  //聲明接口實例,但不是實例化            p.Fun();            Console.Read();        }    }}
區別:
  • 當類實現一個接口時,通常使用隱式接口實現,這樣可以方便的訪問接口
  • 當類實現多個接口時,並且接口中包含相同的方法簽名,此時用顯式接口實現。標識出哪個方法屬於哪個接口
  • 隱式接口實現,類和接口都可訪問接口中方法。只能通過接口訪問
 
四.接口的繼承
1.接口的繼承與類的繼承不同,類的繼承可以繼承基類方法實現,而接口繼承只是繼承了父接口的成員方法說明
2.接口的繼承允許多繼承
3.被繼承的接口應該是可以訪問到的,不允許繼承private或internal類型

转载于:https://www.cnblogs.com/ygtup/p/9358962.html

你可能感兴趣的文章
图片滚动显示,鼠标滑过放大显示
查看>>
ios使用ffmpeg错误收集
查看>>
[linux驱动][Linux内存]DMA学习笔记一
查看>>
redis-cluster集群
查看>>
c语言中window.h函数说明做个记录
查看>>
Dijkstra 之最短路径算法(无优化版本) By ACReaper
查看>>
字符统计与正则表达式
查看>>
Linux下文件的三种时间标记:访问时间、修改时间、状态改动时间 (转载)
查看>>
python写xml文件
查看>>
电子商务那点事
查看>>
[leedcode 43] Multiply Strings
查看>>
[leedcode 71] Simplify Path
查看>>
IntelliJ IDEA 14 注册码
查看>>
2019春第三次课程实验报告
查看>>
intent- 启动其他应用
查看>>
bzoj 1069 [SCOI2007]最大土地面积
查看>>
第一篇:weblogic之weblogic10.3.6安装
查看>>
[Tex学习笔记]开方
查看>>
一套2015年微积分期末考试试卷
查看>>
【分享】一个Asp.net mvc下的分页控件MvcPagerX
查看>>