第八章 接 口
一、接口和抽象类的关系
·接口相当于抽象类,只是不能包含任何实现的方法
·接口的每种方法都必须在派生类中实现
·声明为interface后就不用加abstract关键字了,已经声明接口成员为抽象的了
二、接口的作用
·接口是类的“模具”,它指明了一个类应该提供哪些内容
·接口提高了程序的扩展能力
三、声明接口
·只限于方法,索引器,属性,事件的声明,不能实现
·不能包含字段,构造函数,常量等,也不能包含静态成员
·接口的成员都是隐式公开的,不需要加访问修饰符(如显式指定访问级别编译器会报错)
·指定方法时只给出返回值类型,方法名称,参数列表,以分号结束
·接口也用Pascal命名法,名称应该冠以“I”
四、实现接口
·使用“:”继承
·实现方法,并不重写方法,所以不用写关键字override
·实现接口的方法的返回值,方法名,参数列表应与接口中声明的方法一致
·实现接口的方法应指定为public
五、实例化的方式,调用方式都与类相同
六、多重接口实现
·C#允许多重接口实现(继承)
·每个接口的每种方法都必须在派生类中实现,既接口一旦声明,必须继承实现
七、显式接口实现
1.一个类从两个接口继承,且这两个接口中有相同的方法(包括名字,返回值类型,参数),此时使用接口的显式实现
2.调用:接口引用
3.如果省略了访问修饰符:
·使用接口引用,编译器认为方法是公有的(声明一个接口类型的变量,new为一个类类型)
·使用类引用时,编译器认为方法是私有的(声明一个类类型的变量,依然new为这个类)
八、接口的继承
1.合并接口:将多个接口合并成一个,形成一个派生接口
2.类实现派生接口时,必须为基接口和派生接口的所有成员编写实现代码
转载于:https://blog.51cto.com/pein7/368817