接口初步理解
来源:互联网 发布:以房养老骗局 知乎 编辑:程序博客网 时间:2024/05/21 21:37
接口这个概念之前就已经接触,但由于目前为止使用较少,对它并不是很了解,而后经过查阅相关资料终于有了较为系统的理解。接口是一种用来定义程序的协议,有方法、属性、事件和索引器构成,但是只能起到定义作用,不能给这些成员设置具体的值。
接口具有如下特点:
1、 接口不能直接实例化
2、 接口可以定义方法、属性和索引
3、 接口不包含方法的实现
4、 继承接口的任何非抽象类型都要实现接口的所有成员
5、 类或结构可以继承自多个接口
6、 接口自身可以从多个接口继承
由于类不能支持多重继承,但是现实需要中却难免出现多重继承的情况,这种情况下就需要接口实现多重继承的功能。所以多重继承式接口的重要应用之一。
namespace 接口{ interface IPeople { string Name { get; set; } string Rank { get; set; } } interface IManager : IPeople { void Manage(); } interface IWorker : IPeople { void Product(); } class Program : IPeople, IManager ,IWorker { string name = ""; string rank = ""; public string Name { get { return name; } set { name = value; } } public string Rank { get { return rank; } set { rank = value; } } public void Manage() { Console.WriteLine(Name + "" + rank ); } public void Product() { Console.WriteLine(Name + "" + Rank ); } static void Main(string[] args) { Program program = new Program(); IManager imanager = program; imanager.Name = "jingli"; imanager.Rank = "经理"; imanager.Manage(); IWorker iworker = program; iworker.Name = "yuangong"; iworker.Rank = "员工"; iworker.Product(); } }}
实例显示了多重接口的应用。关于接口,值得一提的还有在它的使用中,还可能出现类需要实现两个包含相同签名成员的接口的情况,同时如果接口的两个成员实现不同功能,则可能出现几口不能实现或程序编译错误。这是需要使用显示接口。
namespace 显式接口{ interface Icalculate1 { int Add(); } interface Icalculate2 { int Add(); } class Calculate: Icalculate1, Icalculate2 { int Icalculate1.Add () { int x = 6; int y = 8; return x + y; } int Icalculate2.Add() { int x = 3; int y = 9; int z = 6; return x + y+ z; } } class Program { static void Main(string[] args) { Calculate calculate = new Calculate(); Icalculate1 icalculate1 = calculate; Console.WriteLine(icalculate1.Add()); Icalculate2 icalculate2 = calculate; Console.WriteLine(icalculate2.Add()); } }}
计算结果为:
需要注意的是现实接口的成员不是类的成员,所以不能用类对象直接访问,只能通过对象和接口访问。
0 0
- 接口初步理解
- 接口初步理解
- 对Java中接口的初步理解
- 对接口的一些初步理解
- 接口测试的初步理解并附一些用例
- 关于抽象类和接口的初步理解
- 6.3 Java中接口回调的初步理解
- 线程的初步理解,生命周期,实现方法,Thread类,Runnable接口,Callable接口线程池
- 初步了解接口测试
- Query 接口初步
- 初步认识 Repository 接口
- IDE&接口初步认知
- 初步认识restful接口
- IoC初步理解
- Hibernate 二级缓存初步理解
- 初步理解设计模式
- 保护模式初步理解
- 子网掩码的初步理解
- 如何在CentOS中把网卡设置成动态获取IP
- Android情景分析之深入解析zygote
- 百度地图URI API,调用位置、导航模块,移动端
- android--友盟自动更新配置说明
- 构建模式
- 接口初步理解
- 史上最全的iOS面试题及答案
- hdu1102:Constructing Roads(prime)
- 博客园精华集
- android之【代码实现ImageView图片切换】
- 项目所用技术回顾之excel导入(基于poi)
- sql 中 case when 超炫语法
- SOA、ESB、WebService解释
- ios--时间格式化--NSDateFormatter