C#中的interface
来源:互联网 发布:财经软件排行 编辑:程序博客网 时间:2024/05/17 03:12
Interfaces (C# Programming Guide)
Interfaces are defined using the interface keyword. For example:
interface IComparable{ int CompareTo(object obj);}
Interfaces describe a group of related behaviors that can belong to any class or struct. Interfaces can be made up of methods, properties, events, indexers, or any combination of those four member types. An interface can not contain fields. Interfaces members are automatically public.
Classes and structs can inherit from interfaces in a manner similar to how classes can inherit a base class or struct, with two exceptions:
A class or struct can inherit more than one interface.
When a class or struct inherits an interface, it inherits only the method names and signatures, because the interface itself contains no implementations. For example:
public class Minivan : Car, IComparable{ public int CompareTo(object obj) { //implementation of CompareTo return 0; //if the Minivans are equal }}
To implement an interface member, the corresponding member on the class must be public, non-static, and have the same name and signature as the interface member. Properties and indexers on a class can define extra accessors for a property or indexer defined on an interface. For example, an interface may declare a property with a get accessor, but the class implementing the interface can declare the same property with both a get and set accessor. However, if the property or indexer uses explicit implementation, the accessors must match.
Interfaces and interface members are abstract; interfaces do not provide a default implementation. For more information, see Abstract and Sealed Classes and Class Members.
The IComparable interface announces to the user of the object that the object can compare itself to other objects of the same type, and the user of the interface does not need to know how this is implemented.
Interfaces can inherit other interfaces. It is possible for a class to inherit an interface multiple times, through base classes or interfaces it inherits. In this case, the class can only implement the interface once, if it is declared as part of the new class. If the inherited interface is not declared as part of the new class, its implementation is provided by the base class that declared it. It is possible for a base class to implement interface members using virtual members; in that case, the class inheriting the interface can change the interface behavior by overriding the virtual members. For more information on virtual members, see Polymorphism.
An interface has the following properties:
An interface is similar to an abstract base class: any non-abstract type inheriting the interface must implement all its members.
An interface cannot be instantiated directly.
Interfaces can contain events, indexers, methods and properties.
Interfaces contain no implementation of methods.
Classes and structs can inherit from more than one interface.
An interface can itself inherit from multiple interfaces.
Explicit Interface Implementation (C# Programming Guide)
Interface Properties (C# Programming Guide)
Indexers in Interfaces (C# Programming Guide)
How to: Implement Interface Events (C# Programming Guide)
How to: Explicitly Implement Interface Members (C# Programming Guide)
How to: Explicitly Implement Interface Members with Inheritance (C# Programming Guide)
- C#中的interface
- C#中的interface
- c#中的interface abstract virtual
- c#中的interface abstract与virtual
- c#中的interface abstract与virtual
- c#中的interface abstract与virtual
- c#中的interface abstract 与 virtual
- c#中的interface abstract 与 virtual
- C#中的interface abstract virtual异同
- c#中的interface、abstract与virtual
- C#中的interface,abstract和virtual
- C#中的interface,abstract和virtual
- C#中的interface,abstract和virtual
- c#中的interface abstract与virtual
- c#中的interface abstract 与 virtual 【转】
- C#中的interface没那么简单
- c#中的interface abstract与virtual
- C#中的interface没那么简单
- hdu 1875畅通工程再续-prim最小生成树
- 配置struts2和spring3
- JSF 2.0 中定义受管 Bean 的三种途径的比较
- 使用emacs时出现的问题
- POJ 3189 枚举+最大流
- C#中的interface
- How to start learning Hadoop and Mapreduce?
- cerr与cout的区别
- Amazon Simple Queue Service(Amazon SQS)
- fedora14下gedit出错:Failed to connect to the session manager 问题解决(su和su -两个命令的区别)
- 公众无线局域网体系结构和运营模式
- VS2008+ffmpeg_sdk 3.2 + sdl 播放视频(一)
- VS2008+ffmpeg_sdk 3.2 + sdl 播放视频(二)
- win7和ubuntu双系统,直接进入windows启动项选择菜单,而不进入grub的解决方案。