只谈接口(interface)
接口只包含方法、委托或事件的签名。方法的实现是在实现接口的类中完成的(接口的命名以I为开头),如下面的示例所示:
interface ISampleInterface
{
void SampleMethod();
}
class ImplementationClass : ISampleInterface
{
// Explicit interface member implementation:
void ISampleInterface.SampleMethod()
{
// Method implementation.
}
static void Main()
{
// Declare an interface instance.
ISampleInterface obj = new ImplementationClass();
// Call the member.
obj.SampleMethod();
}
}
接口可以是命名空间或类的成员,并且可以包含下列成员的签名:方法、属性、索引器、事件,但不能是常量、域、操作符、构造函数或析构函数,而且不能包含任何静态成员。
接口定义创建新的定义空间,并且接口定义直 接包含的接口成员定义将新成员引入该定义空间。
对接口的一些认识:
1。接口提供一种规范,是对不同类中的共性的一种抽象,一种标准化,没有实例化,比如说有类狗、猫等等,他们都有一个共同的action:"call",那么我们就可以把这个cll的动作抽象出来,定义在接口中,在类中分别实现,有了标准,在以后的维护和扩展中减少很多工作量。
2。接口可以多重继承。
3。接口可以实现多态,For example:
class UseInterface
{
interface Iinstrument
{
void Play();
}
class Violin : Iinstrument
{
public void Play()
{
Console.WriteLine("这是小提琴的演奏。");
}
}
class Flute : Iinstrument
{
public void Play()
{
Console.WriteLine("这是长笛的演奏。");
}
}
static void CallFoo(Iinstrument instrument)
{
instrument.Play();
}
public static void Main(string[] args)
{
Violin v = new Violin();
Flute f = new Flute();
CallFoo(v);
CallFoo(f);
Console.ReadLine();
}
}
4。接口的使用问题,接口的优点是很明显的了,但是我们不能为了接口而接口,如果滥用接口,造成资源的浪费。在不同的类中共性越多的,就越要定义位接口,但是如果实现是一样的话就可以考虑用抽象类了,而不是接口了。
5。上面提到抽象类,在实际的使用,到底是使用抽象类还是使用使用接口,需要更具不同的情况做不同的选择,没有一定的说法。
这里没有具体的将接口的怎么运用说明,只是将自己的理解说明一下,肯定也有认识不足的地方。。。
理论知识,最终还是需要运用到实践中,才会有更加深刻的认识,积累经验。。。