关闭

黑马程序员 接口 总结

标签: 接口 总结
402人阅读 评论(0) 收藏 举报
---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------

1.C#中使用关键字interface来定义接口类型,其成员只能是一般方法声明、属性、事件和索引函数,而不能有字段和构造函数。接口声明访问修饰符和类一样,成员不允许有任何访问修饰符,默认为public,static也不行。

2.接口可继承,子接口可以包含与父接口相同的方法,但此时子接口的方法必须使用关键字new隐藏父接口的方法 ,面不能使用override修饰符来重载父接口的方法。接口这间的继承同样存在传递性。接口IB从接口IA派生,面接口IC又从IB派生,那么它也就间接地从IA派生,不过接口不能从类派生。

3.接口的实现,如果支持接口的类型是非抽象的,那么必须支持接口中的所有方法,并为这些方法提供具体实现;如果支持接口的类型是抽象类,那么它必须支持接口中所有方法,且这些方法要么提供具体实现,要么是抽象的。  静态类不能继承接口,实现的接口也不能声明为静态的

4.由于类可以实现任意数量的接口,有可能两个或多个接口成员都有相同的签名和返回类型,那么如果一个类实现了多个接口,那么其中一些接口有相同签名和返回类型的成员,类可以实现单个成员画满足所有包含重复成员的接口。还有实现接口的类可以从它的基类继承实现的代码。

5.通过公有成员方法来实现所支持的接口方法(接口方法声明默认是public),这叫作对接品方法的隐式实现,隐式实现,可以通过类的实例来进行方法调用,也可以隐匿转换为接口实例再进行方法调用, 成员方法可以使用abstract或virtual修饰符(表示允许派生类重载),但不能使用sealed和override修饰符。 在方法名这前加上接口名,这叫作对接口方法 的显示实现,此时方法不能使用任命修饰符,那么它实际上就是类的私有成员因此不能通过类的实例来访问,而是需要转换为接口实例才能访问。

6.如果有显式接口成员实现,类级别的实现是允许的,但不是必须的。显式实现满足了类或结构必须实现的方法。因此,我们有3种实现:级别实现;显示接口成员实现;类级别和显式接口成员实现。

7.利用接口来实现多太性,接口方法的隐式实现和显式实现可以并存,在这种情况下,显式实现的方法才是对接口方法的真正实现,面隐式实现的方法可以看作是对原接口方法的覆盖,此时通过接口实例调用的是显式实现的方法,而通过对象实例调用的则是隐式实现的方法。

8.C#语言中规定一个类只能有一个直接基类,但可以同时继承多个接口,这能够有效地弥补单在表达能力上的不足。接口这间的继续只是“契约”继承,不需要提供实现,当一个类支持多个接口时,它也只是实现各接口的“契约”服务,而不需要处理多重构造函数和重载方法等复杂情况,

9.和类这间的单继承不同,一个接口可以有多个父接口,此时在继承声明中父接口这间通过逗号分隔。一个类同样可以支持多个接口;如果同时存在类继承,那么继承声明中的基类应出现在所有接口之前。
 
10.接口与集合:.NET类库中与集合有关的接口类型
IEnumerable 支持foreach遍历的可枚举类型     IEnumerator 枚举器,提供对可枚举类型的遍历操作
 public interface ICollection : IEnumerable  //对象集合,定义所有非泛型集合的大小、枚举器和同步方法。
public interface IList: ICollection,IEnumerable//对象列表。支持对象的插入、删除和索引访问,表示可按照索引单独访问的对象的非泛型集合。     
public interface IDictionary : ICollection, IEnumerable //有字典(键值对)的集合  
public interface IDictionaryEnumerator : IEnumerator //有字典序的枚举器  
.NET类库中的主要集合类型
public class ArrayList : IList, ICollection, IEnumerable, ICloneable//使用大小可按需动态增加的数组实现 System.Collections.IList 接口
public class Queue : ICollection, IEnumerable, ICloneable //表示对象先进先出
public class Stack : ICollection, IEnumerable, ICloneable //表示对象的简单的后进先出非泛型集合   
 public class SortedList : IDictionary, ICollection, IEnumerable, ICloneable//表示键值对的集合,这些键值对按键排序并可按照键和索引访问                                                                                                                               

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:5058次
    • 积分:158
    • 等级:
    • 排名:千里之外
    • 原创:10篇
    • 转载:1篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档